Можно ли определить специализацию шаблона реализации как typedef другого типа?

У меня есть шаблон класса, для которого я хочу представить несколько специализаций шаблона. Эти шаблонные специализации идентичны некоторым существующим типам. Концептуально я хотел бы реализовать их как псевдонимы / typedefs.

Следующий пример кода должен показать, что я хочу сделать:

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;

Возможно ли что-либо выше в C ++ (или C ++ 11)? Было бы здорово, если бы мне не пришлось реализовыватьCommon<...> как класс, который наследуетTypeZ - фактический код более сложен, чем показано выше, и наследуетсяTypeZ там не очень хорошая идея

Ответы на вопрос(2)

Ваш ответ на вопрос