特定のプリミティブタイプのみを許可するには、テンプレートクラス内でメソッドを特殊化する必要があります。 、テンプレートメソッド内のテンプレートクラス
template<typename TYPE, size_t NB>
class X
{
public:
template<typename arg_type>
X& get(const arg_type var);
}
私は唯一の符号なし整数を許可するARG_TYPEを専門にしたいと思い、このような何か:
template<typename TYPE, size_t NB> template<unsigned long> X& X::get(const unsigned long val);
さて、私はこのクラスを持っている(これはthisの重複問題ではありません)
しかし、必ず、上記の私は何をしようとすると、テンプレートに基づいてコードを書くことで、より具体的にはmsvc2011にもgccの
でもない、動作しません。このクラスXを使用している人は誰もが私の専門とは違う方法でこのメソッドを使うことができないように特殊化を記述してください。
これは可能ですか?もしそうなら、そうするのは悪いですか?事前に
おかげで、 jav974
入れ子にされたテンプレートを持つのが最良のアプローチだと思うのはなぜですか?この作業を行うことができますが、ネストされたテンプレートを持たず、テンプレート以外の過負荷だけのような、もっとクリーンな単純なソリューションがあるかもしれません... –