1
У меня есть шаблон классаКак специализировать шаблон шаблона для класса?
template <class T>
struct TypeText {
static const char *text;
};
и несколько специализаций для члена «текст»:
template <> const char* TypeText<int>::text = "INT";
template <> const char* TypeText<long>::text = "LONG";
Как осуществить специализацию std::vector<A,B>
без каких-либо предварительных знаний о A
и B
? Можно ли отличать std::vector<A,B>
от SomeOtherClass<A,B>
?
Следующая не работает:
template <>
template <class T, class A>
const char* TypeText< std::vector<T,A> >::text = "vector";
Вы изменили исходный класс шаблона. – pavelkolodin
Я ошибаюсь. Меня удивила частичная специализация. Спасибо. – pavelkolodin
@pavelkolodin BTW: Почему вы хотите указать второй параметр шаблона 'std :: vector'? Если вам действительно нужно это сделать, вы можете добавить второй параметр шаблона для частичной специализации. – songyuanyao