我是模板编程的新手。我有一个矢量类,我试图模板包含与父类相同的类的静态成员:
template<typename T>
class Vector
{
// vector stuff
static const Vector c_NullVector;
}
我正在尝试初始化这个静态成员,但只有在我明确说明类型时才能取得成功,例如:
const Vector2d<float> Vector2d<float>::c_Zero(0.0);
如果可能,我宁愿不必初始化每种类型。这甚至可能吗?
答案 0 :(得分:4)
您必须提供如下定义:
template<typename T>
class Vector
{
// vector stuff
static const Vector c_NullVector;
}
template <typename T>
const Vector<T> Vector<T>::c_NullVector;
如果你能想出一个通用的初始化,你可以把它放在定义中。
答案 1 :(得分:1)
我怀疑,这是可能的。那么Vector<MyVeryComplicatedClass>
呢?你怎么知道如何初始化它?