特定のプリミティブ型のみを許可するために、テンプレート クラス内のメソッドを特殊化する必要があります (したい)。(これはこれの重複した質問ではありません)
さて、私はこのクラスを持っています:
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);
しかし確かに、上記はmsvc2011でもgccでも機能しません
より具体的には、私がやろうとしているのは、上記のテンプレート化された型に基づいてコードを記述し、このクラス X を使用する誰もがこのメソッドを私が特化したもの以外で使用できないように特殊化を記述することです。
それは可能ですか?もしそうなら、そうするのは悪いことですか?
前もって感謝します、jav974