クラス内にテンプレート関数を作成するにはどうすればいいですか? (C++) 質問する

クラス内にテンプレート関数を作成するにはどうすればいいですか? (C++) 質問する

テンプレート関数を作成できることはわかっています:

template<typename T>
void DoSomeThing(T x){}

テンプレートクラスを作成することも可能です:

template<typename T>
class Object
{
public:
    int x;
};

しかし、テンプレート内にクラスを作成しないで、そのクラス内の関数をテンプレートにすることは可能ですか? つまり:

//I have no idea if this is right, this is just how I think it would look
class Object
{
public:
    template<class T>
    void DoX(){}
};

または、クラスはテンプレートの一部ではないが、関数はテンプレートの一部であるようなものはありますか?

ベストアンサー1

あなたの推測は正解です。覚えておかなければならないのは、メンバー関数テンプレートが意味(宣言に加えて)はcppではなくヘッダーファイルにあるべきであるが、ないクラス宣言の本体自体に記述する必要があります。

おすすめ記事