テンプレートクラスには、戻り値の型がテンプレート引数に基づいたメソッドを持つ必要があります。この例では、K=0
の場合はint
(コピー)、K=1
の場合はint&
(返信)を返す関数を作成するにはどうすればよいですか?いくつかのテンプレート引数に基づいて、テンプレートクラスメソッドの戻り値の型にどのように影響を与えることができますか?
template<typename T, int K>
class someclass
{
public:
someclass() : member(3) { }
T giveback() { return member; } // if K=0 should return by T, else return by T&
private:
T member;
};
int main()
{
someclass<int,0> x;
x.giveback();
}
テンプレートの特殊化が可能であることはわかっています。しかし、これを達成する他の方法はありますか? – dani
あなたに特化した何かに代理してください。 –