今ここで見ました。
そのような構造に出会ったことがなく、それが何を意味するのか理解できません! typedef は新しい型を生成しないため、特殊化でどのように機能するか:
違う:
template <typename T>
void a();
typedef int a_t;
typedef int b_t;
template<> void a<a_t>(){}
template<> void a<b_t>(){}
警告付きでコンパイル: 'typedef' was ignored in this declaration
、期待どおりに動作:
template <typename T>
void a();
typedef class a_t;
typedef class b_t;
template<> void a<a_t>(){}
template<> void a<b_t>(){}