テンプレート関数を作成できることはわかっています:
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ではなくヘッダーファイルにあるべきであるが、ないクラス宣言の本体自体に記述する必要があります。