Czy można zdefiniować specjalizację szablonu implementacji jako typedef innego typu?
Mam szablon klasy, dla którego chcę wprowadzić kilka specjalizacji szablonów. Te specjalizacje szablonów są identyczne z niektórymi istniejącymi typami. Koncepcyjnie chciałbym je zaimplementować jako aliasy / typedefy.
Poniższy przykładowy kod powinien pokazywać, co chcę zrobić:
template<class T> class Common {
/// general implementation
};
class TypeZ;
template<> class Common<Type1> = TypeZ; // <<< how to do this?
template<> class Common<Type2> = TypeZ;
template<> class Common<Type3> = TypeZ;
Czy jest to możliwe w C ++ (lub C ++ 11)? Byłoby wspaniale, gdybym nie musiał implementowaćCommon<...>
jako klasa dziedziczącaTypeZ
- rzeczywisty kod jest bardziej złożony niż pokazano powyżej i dziedziczyTypeZ
nie jest to dobry pomysł.