[英]Initialize an static member in an fully specialized class template
我似乎无法在完全专业化的类模板中初始化静态成员!
我正在尝试执行以下操作:
template<typename Type>
class X
{
};
template<>
class X<int>
{
public:
static int Value;
}
但我似乎无法初始化静态成员,我尝试了一切像:
template<>
int X<int>::Value = 0;
它没有编译,所以任何关于如何实际执行此操作的指针都会很好;)
编辑:下面的答案是正确的,但您还需要将init放在.cpp文件中,而不是放在头文件中。
谢谢你的时间,理查德。
不使用template<>
同时限定Value
,因为template<>
中未明确地专门类的成员定义允许[ X<int>
在这种情况下]。 此外,你错过了一个分号}
这对我有用 :
template<typename Type>
class X
{
};
template<>
class X<int>
{
public:
static int Value;
};
int X<int>::Value = 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.