继这个职位的答案How to specialize a template for 2 different values?我想要实现的类定义之外的功能,但我似乎无法找到究竟是什么类模板什么是类模板的完整类型资格?
template <typename T, unsigned int N, typename = void>
class A
{
A();
public:
T* data;
};
template <typename T, unsigned int N>
class A<T, N, typename std::enable_if<N == 3 || N == 4>::type>
{
A();
public:
T data[N];
};
到目前为止,我已经试过
完整的类型资格template <typename T, unsigned int N, typename>
A<T,N>::A(){} //expected a ';' + expected a type specifier + expected an identifier
template <typename T, unsigned int N, typename>
A<T,N,typename>::A(){} //same errors but I believe this doesnt make sense at all
此外,如何在编写成员函数的实际代码时区分通用模板和专业化?
请在问题中发布所有相关信息 - 不要依赖其他人将遵循链接的事实。请记住,一个好的[MCVE]是关键。 –