刚才在这里看到了。
从来没有遇到过这样的结构,我不明白,这是什么意思!以及它在专业化中的工作方式,因为 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>(){}