C 17 では、クラス テンプレート引数の演繹 (CTAD) により、クラス テンプレート引数の演繹 (CTAD) により、引数に渡される引数に基づいてテンプレート引数を演繹できます。関数またはコンストラクター。ただし、このプロセスでは現在、引数をすべて指定するか、まったく指定する必要がありません。
テンプレート引数を部分的に指定し、残りの引数を推定できるかどうかという疑問が生じます。例:
<code class="cpp">Base<V = bool> val1(1, 4.); // U & V deduced --> Base<int, double, bool> Base<T = bool, T =int> val2(5.); // V deduced --> Base<bool, int, double></code>
ただし、次のようなエイリアス テンプレートを使用してこれを実現しようとすると、コンパイル エラーが発生します。
<code class="cpp">template<class T, class U> using Base2 = Base<T, U, double>; void func() { NewBase2 val(1, 2); }</code>
以上が## C 17 は部分的なクラス テンプレートの引数の演繹を達成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。