クラス テンプレート メンバー関数の明示的な特殊化
C では、クラス テンプレート メンバー関数を明示的に特殊化して、特定の型にさまざまな実装を提供できます。クラス テンプレートのメンバー関数の明示的な特殊化を定義するには、次の手順に従います。
1.クラステンプレートを特殊化で囲む
クラステンプレートのメンバ関数を特殊化する場合、周囲のクラステンプレートも特殊化する必要があります。これにより、メンバー関数が対象となる特定のクラス テンプレートにのみ特化されることが保証されます。
2.メンバー関数を明示的に特殊化する
明示的に特殊化されたメンバー関数を次のように宣言します。
template <> Type Class<Type>::MemberFunction() { ... }
この宣言では、Type はメンバー関数が特殊化される特定の型を表します。
例
次のクラスを考えてみましょうメンバー関数を含むテンプレート:
template <class C> class X { public: template <class T> void get_as(); };
get_as メンバー関数を double 型に特殊化するには、次のように記述する必要があります:
template <> template <> void X<int>::get_as<double>() { ... }
注: 明示的な特殊化のメンバー関数は、特定のメンバー関数とその型パラメーターにのみ影響します。他のメンバー関数と周囲のクラス テンプレートは変更されません。
以上がC でクラス テンプレートのメンバー関数を明示的に特殊化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。