C2998不能是模板定义错误

时间:2016-12-12 08:03:00

标签: c++11 templates

我最近遇到了几个C2998错误,这是第一个错误:

案例1,我可以做到

getPrecision(int col)

,在定义完全指定的模板类的静态成员时,我可以使用template <typename T> struct X { static char value; }; template <> char X<int>::value = 'a'; char X<char>::value = 'b'; 或省略它,但我不知道为什么两者都有效。

案例2也编译:

template <>

,当定义完全指定的模板类的静态成员,并且静态成员不在未指定的模板中时,省略template <typename T> struct X2{}; template <> struct X2<int> { static char value; }; char X2<int>::value = 'a'; ,它就会编译。

案例3,如果我添加template <>,这将在第二行触发C2998错误:

template <>

为什么会这样?

0 个答案:

没有答案