テンプレート関数からのテンプレート クラス呼び出しのメンバー関数
提供されたコード スニペットでは、別のテンプレート内からメンバー関数テンプレートを呼び出すと、次のようになります。コンパイルエラー。具体的には、コードは g
これを解決するには、メンバー関数の呼び出し前にテンプレート キーワードを明示的に指定する必要があります。これは、C '03 標準 14.2/4 によれば、メンバー テンプレート特殊化の名前がテンプレート パラメーターに依存する後置式または修飾 ID の後に表示される場合、メンバー テンプレート名の前にテンプレート キーワードを付ける必要があるためです。 .
したがって、次のコードは正しいです:
<code class="cpp">template<class T> void g() { A<T> a; a.template f<3>(); // Explicitly specify 'template' keyword }</code>
template キーワードを追加すると、コンパイラは f が A クラス テンプレートのメンバー テンプレートであることを正しく識別でき、 A
以上がテンプレート化された関数からメンバー関数テンプレートを呼び出すときに `template` キーワードが必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。