暗黙的な型変換とテンプレート推定
int を Scalar
提供されたコードでは、
<code class="cpp">func(a, 2);</code>
コンパイラは int 2 を Scalar
<code class="cpp">func(a, Scalar<int>{2}); // C++14</code>
または、C 17 が使用されている場合は、Scalar の演繹ガイドを定義して、次の構文を許可できます:
<code class="cpp">func(a, Scalar{2});</code>
最後に、指定された型引数を使用したテンプレート関数の明示的なインスタンス化により、暗黙的な変換の必要性を回避することもできます。
<code class="cpp">func<int>(a, 2); // Assuming Scalar<T>::Scalar(T) is not explicit</code>
以上がユーザー定義型の暗黙的な型変換でテンプレート推定が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。