テンプレート関数からのテンプレート クラス呼び出しのメンバー関数
提供されたコード スニペットでは、別のテンプレート内からメンバー関数テンプレートを呼び出すと、次のようになります。コンパイルエラー。具体的には、コードは g
これを解決するには、メンバー関数の呼び出し前にテンプレート キーワードを明示的に指定する必要があります。これは、C '03 標準 14.2/4 によれば、メンバー テンプレート特殊化の名前がテンプレート パラメーターに依存する後置式または修飾 ID の後に表示される場合、メンバー テンプレート名の前にテンプレート キーワードを付ける必要があるためです。 .
したがって、次のコードは正しいです:
template void g()
{
A a;
a.template f(); // Explicitly specify 'template' keyword
}
template キーワードを追加すると、コンパイラは f が A クラス テンプレートのメンバー テンプレートであることを正しく識別し、A
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3