【发布时间】:2012-01-08 19:58:17
【问题描述】:
我一直在对这个问题进行一些研究,但还没有提出解决方案。基本上我需要在模板类中初始化一个静态 const 类型变量。
class MyType
{
public:
MyType (int a, int b) { }
};
template <class T>
class MyClass
{
public:
static const MyType Type;
};
在 cpp 中初始化类型会产生链接器错误。在标头中初始化类型将导致它被多次初始化。由于它是非整数类型,因此无法在类中初始化类型。如何在不限制类专业化的情况下解决这个问题。任何帮助表示赞赏。
【问题讨论】:
-
"在头部初始化类型会导致它被多次初始化。"你能举个例子说明你是怎么做的吗?如果您只是检查构造函数是否被多次调用,则应该多次调用它,因为每个模板类实例化都有一个成员。
标签: c++ templates static-variables