クラス メンバー関数の部分特殊化
通常の関数とは異なり、テンプレート クラス内のメンバー関数のみを部分特殊化することは C では許可されません。代わりに、クラス全体を部分的に特殊化する必要があります。
メンバー関数の部分的な特殊化を実現するには、次の手順を実行する必要があります。
たとえば、nValue が 0 に等しい特定のコードで Deform() メンバー関数の部分特殊化を作成するには、次のコードは元のコードを修正する方法を示しています。
// Partial specialization of the Object class for nValue = 0 template <> class Object<int, 0> { private: int m_t; Object(); public: Object(int t): m_t(t) {} int Get() { return m_t; } Object& Deform() { std::cout << "Specialized\n"; m_t = -1; return *this; } };
これらの変更により、コードは nValue が 0 に等しい Deform() メンバー関数を部分的に正しく特殊化するようになりました。
以上がC のテンプレート クラス内でメンバー関数の部分特殊化を実現するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。