Можно ли определить специализацию шаблона реализации как 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
там не очень хорошая идея