带有静态类成员的 C++ 模板类

OhM*_*ere 1 c++ templates compiler-errors class

我是模板编程的新手。我有一个向量类,我试图模板它包含与父类相同的类的静态成员:

template<typename T>
class Vector
{
   // vector stuff

   static const Vector c_NullVector;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试初始化这个静态成员,但只有在我明确声明类型的情况下才能成功,例如:

const Vector2d<float> Vector2d<float>::c_Zero(0.0);
Run Code Online (Sandbox Code Playgroud)

如果可能,我宁愿不必初始化每种类型。这甚至可能吗?

Rei*_*ica 5

您必须提供如下定义:

template<typename T>
class Vector
{
   // vector stuff

   static const Vector c_NullVector;
}

template <typename T>
const Vector<T> Vector<T>::c_NullVector;
Run Code Online (Sandbox Code Playgroud)

如果你能想出一个通用的初始化,你可以把它放在定义中。