Potrzebuję (chcę), aby specjalizować metodę wewnątrz klasy szablonów, aby zezwalać tylko określonym typom pierwotnym. (To nie jest duplikatem kwestia this)Specjalizacja metody szablonów wewnątrz szablonu klasy
Cóż mam tej klasy:
template<typename TYPE, size_t NB>
class X
{
public:
template<typename arg_type>
X& get(const arg_type var);
}
Chciałbym specjalizować arg_type aby umożliwić jedynie liczby całkowite, coś takiego:
template<typename TYPE, size_t NB> template<unsigned long> X& X::get(const unsigned long val);
Ale na pewno powyższe nie działa, ani na msvc2011, ani na gcc
Dokładniej, staram się napisać kod na podstawie szablonów wpisz powyżej i napisz specjalizację, aby każdy, kto używa tej klasy X, nie mógł użyć tej metody z czymś innym niż wyspecjalizowanym.
Czy to możliwe? a jeśli tak, to czy to źle?
Dzięki z góry, jav974
Dlaczego według ciebie najlepszym rozwiązaniem jest posiadanie szablonu zagnieżdżonego? Mimo że możesz to zrobić, mogą istnieć czystsze i prostsze rozwiązania, takie jak brak szablonu zagnieżdżonego i przeciążenia, które nie są szablonami ... –