テンプレートを使用したテンプレート引数推定の自動化
質問:
テンプレートを使用できますコンパイル時に型を明示的に指定せずに引数を渡すことはできますか?たとえば、テンプレート
答え:
上記のアプローチは C では不可能です。最も近い代替方法は、マクロを使用することです:
<code class="cpp">#define AUTO_ARG(x) decltype(x), x f.bar<AUTO_ARG(5)>(); f.bar<AUTO_ARG(&Baz::bang)>();</code>
もう 1 つのアプローチは、テンプレート引数を推定するジェネレーター関数を使用することです:
<code class="cpp">template <typename T> struct foo { foo(const T&) {} // do whatever }; template <typename T> foo<T> make_foo(const T& x) { return foo<T>(x); }</code>
今度は、次のように書く代わりに、
<code class="cpp">foo<int>(5);</code>
次のように簡単に書くことができます:
<code class="cpp">make_foo(5);</code>
このメソッドはテンプレート引数の推論を自動化します。引数を渡すためのより便利な方法を提供します。
以上がC では「template」を使用してテンプレート引数を自動的に推定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。