テンプレートクラス(すでに指定されている)でテンプレートメンバー関数を特殊化する方法は?

user1899020

例えば:

template<unsigned number>
struct A
{
    template<class T>
    static void Fun()
    {}
};

template<>
struct A<1>
{
    template<class T>
    static void Fun()
    {
       /* some code here. */
    }
};

そして、A <1> :: Fun()を専門にしたい

template<>
template<>
void A<1>::Fun<int>()
{
    /* some code here. */
}

動作していないようです。どうやるか?ありがとう。

アンディプロール

クラステンプレートの明示的な特殊化は、通常のクラスに似ています(完全にインスタンス化されるため、パラメトリックタイプではありません)。したがって、外側は必要ありませんtemplate<>

// template<> <== NOT NEEDED: A<1> is just like a regular class
template<> // <== NEEDED to explicitly specialize member function template Fun()
void A<1>::Fun<int>()
{
    /* some code here. */
}

同様に、メンバー関数Funが関数テンプレートではなく、通常のメンバー関数である場合は、次のものはまったく必要ありませんtemplate<>

template<>
struct A<1>
{
    void Fun();
};

void A<1>::Fun()
{
    /* some code here. */
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

関数テンプレート(クラステンプレートのメンバー)を明示的に特殊化すると、「部分的な特殊化は許可されていません」というエラーが発生します。なぜですか?

分類Dev

テンプレートクラスでテンプレートメンバー関数を特殊化する方法は?

分類Dev

C ++のクラステンプレートに、特殊化されていない共通の静的メンバーを含めることは可能ですか?

分類Dev

完全に特殊化されたテンプレートクラスの定義の外でテンプレートメンバー関数を定義するにはどうすればよいですか?

分類Dev

完全に特殊化されたテンプレートクラスの定義の外でテンプレートメンバー関数を定義するにはどうすればよいですか?

分類Dev

テンプレートメンバー関数を特殊化する方法は?

分類Dev

テンプレート化されていないクラスのテンプレート化されたメンバーメソッドを部分的に特殊化するにはどうすればよいですか?

分類Dev

テンプレート化されたクラスの基本クラスに基づいてメンバー関数を特殊化するにはどうすればよいですか

分類Dev

テンプレート化されたクラスのメンバー構造体を特殊化する方法

分類Dev

テンプレート化されたクラスのメンバー構造体を特殊化する方法

分類Dev

クラステンプレートによって演算子関数タイプを特殊化するにはどうすればよいですか?

分類Dev

異なるメンバーへのポインターの引数を持つ非型テンプレートパラメーターに対する特殊化は、一意の特殊化であることが保証されていますか?

分類Dev

doubleでテンプレートクラスを特殊化する方法は?

分類Dev

STLコンテナであるテンプレートパラメータに基づいて、選択したメンバー関数の部分的な特殊化をシミュレートするにはどうすればよいですか?

分類Dev

クラスメンバーテンプレートの特殊化(およびクラステンプレートメンバーの特殊化)に異なるアクセス修飾子を設定することは可能ですか?

分類Dev

テンプレートクラスでのテンプレートメンバー関数の特殊化

分類Dev

クラス外で特殊化テンプレートメソッドを宣言する方法は?

分類Dev

特殊化されていないテンプレートでのテンプレート特殊化のメンバーアクセス

分類Dev

クラステンプレートの部分的な特殊化とクラスメンバーの特殊化について混乱する何か

分類Dev

クラステンプレートの非型パラメータを部分的に特殊化するにはどうすればよいですか?

分類Dev

テンプレートパラメータに依存する関数ポインタでテンプレートを特殊化する

分類Dev

別のクラステンプレート内で完全に特殊化されたクラスのコンストラクターを定義する方法

分類Dev

クラステンプレートの特殊化を使用してエイリアステンプレートの特殊化を作成するにはどうすればよいですか?

分類Dev

テンプレートサブクラスを特殊化する方法は?

分類Dev

テンプレート化されたオーバーライド関数の特殊化/オブジェクトのスライスを回避する

分類Dev

クラステンプレートの定義されていないメンバークラスの明示的な特殊化で隠された友達を定義することは合法ですか?

分類Dev

パラメータをとらないメソッド関数型を取るためにテンプレート化されたクラスを特殊化する方法は?

分類Dev

C ++が完全な特殊化によってマスクされている基本テンプレート関数をインスタンス化するのはなぜですか?

分類Dev

派生クラスのメンバーテンプレートクラスの部分的なクラス内特殊化を実行することは合法ですか?

Related 関連記事

  1. 1

    関数テンプレート(クラステンプレートのメンバー)を明示的に特殊化すると、「部分的な特殊化は許可されていません」というエラーが発生します。なぜですか?

  2. 2

    テンプレートクラスでテンプレートメンバー関数を特殊化する方法は?

  3. 3

    C ++のクラステンプレートに、特殊化されていない共通の静的メンバーを含めることは可能ですか?

  4. 4

    完全に特殊化されたテンプレートクラスの定義の外でテンプレートメンバー関数を定義するにはどうすればよいですか?

  5. 5

    完全に特殊化されたテンプレートクラスの定義の外でテンプレートメンバー関数を定義するにはどうすればよいですか?

  6. 6

    テンプレートメンバー関数を特殊化する方法は?

  7. 7

    テンプレート化されていないクラスのテンプレート化されたメンバーメソッドを部分的に特殊化するにはどうすればよいですか?

  8. 8

    テンプレート化されたクラスの基本クラスに基づいてメンバー関数を特殊化するにはどうすればよいですか

  9. 9

    テンプレート化されたクラスのメンバー構造体を特殊化する方法

  10. 10

    テンプレート化されたクラスのメンバー構造体を特殊化する方法

  11. 11

    クラステンプレートによって演算子関数タイプを特殊化するにはどうすればよいですか?

  12. 12

    異なるメンバーへのポインターの引数を持つ非型テンプレートパラメーターに対する特殊化は、一意の特殊化であることが保証されていますか?

  13. 13

    doubleでテンプレートクラスを特殊化する方法は?

  14. 14

    STLコンテナであるテンプレートパラメータに基づいて、選択したメンバー関数の部分的な特殊化をシミュレートするにはどうすればよいですか?

  15. 15

    クラスメンバーテンプレートの特殊化(およびクラステンプレートメンバーの特殊化)に異なるアクセス修飾子を設定することは可能ですか?

  16. 16

    テンプレートクラスでのテンプレートメンバー関数の特殊化

  17. 17

    クラス外で特殊化テンプレートメソッドを宣言する方法は?

  18. 18

    特殊化されていないテンプレートでのテンプレート特殊化のメンバーアクセス

  19. 19

    クラステンプレートの部分的な特殊化とクラスメンバーの特殊化について混乱する何か

  20. 20

    クラステンプレートの非型パラメータを部分的に特殊化するにはどうすればよいですか?

  21. 21

    テンプレートパラメータに依存する関数ポインタでテンプレートを特殊化する

  22. 22

    別のクラステンプレート内で完全に特殊化されたクラスのコンストラクターを定義する方法

  23. 23

    クラステンプレートの特殊化を使用してエイリアステンプレートの特殊化を作成するにはどうすればよいですか?

  24. 24

    テンプレートサブクラスを特殊化する方法は?

  25. 25

    テンプレート化されたオーバーライド関数の特殊化/オブジェクトのスライスを回避する

  26. 26

    クラステンプレートの定義されていないメンバークラスの明示的な特殊化で隠された友達を定義することは合法ですか?

  27. 27

    パラメータをとらないメソッド関数型を取るためにテンプレート化されたクラスを特殊化する方法は?

  28. 28

    C ++が完全な特殊化によってマスクされている基本テンプレート関数をインスタンス化するのはなぜですか?

  29. 29

    派生クラスのメンバーテンプレートクラスの部分的なクラス内特殊化を実行することは合法ですか?

ホットタグ

アーカイブ