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ł.

questionAnswers(2)

yourAnswerToTheQuestion