Шаблонная специализация на основе наследуемого класса
Я хочу сделать этот специализированный без изменения основной. Можно ли специализировать что-либо на основе его базового класса? Я надеюсь, что это так.
-редактировать-
У меня будет несколько классов, которые наследуются от SomeTag. Я не хочу писать одинаковую специализацию для каждого из них.
class SomeTag {};
class InheritSomeTag : public SomeTag {};
template <class T, class Tag=T>
struct MyClass
{
};
template <class T>
struct MyClass<T, SomeTag>
{
typedef int isSpecialized;
};
int main()
{
MyClass<SomeTag>::isSpecialized test1; //ok
MyClass<InheritSomeTag>::isSpecialized test2; //how do i make this specialized w/o changing main()
return 0;
}