C++ 实例化错误后的显式专门化
我有一个模板类名Vec3 代码如下:C++ 实例化错误后的显式专门化,c++,templates,template-specialization,C++,Templates,Template Specialization,我有一个模板类名Vec3 代码如下: Vec3.h: template< typename T > class Vec3_T { public: //! internal struct union { struct { T x, y, z; }; T _m[3]; }; static const Vec3_T<T> ZERO; };
Vec3.h:
template< typename T >
class Vec3_T
{
public:
//! internal struct
union
{
struct
{
T x, y, z;
};
T _m[3];
};
static const Vec3_T<T> ZERO;
};
Vec3.cpp
template<> const Vec3_T<float> Vec3_T<float>::ZERO( 0.f, 0.f, 0.f );
Vec3.h:
模板
第3类
{
公众:
//!内部结构
联盟
{
结构
{
tx,y,z;
};
T_m[3];
};
静态常数向量为零;
};
Vec3.cpp
模板常量Vec3_T Vec3_T::零(0.f,0.f,0.f);
当我使用XCode5编译它时,给我一个错误:实例化后显式专门化'ZERO'。但它可以在vs2008上成功编译。那么,如何修复它呢?也许这里回答了这个问题:你的意思是
模板常量Vec3_T Vec3_T::ZERO{0.f,0.f,0.f}代码>?或者您忘记在代码中添加Vec3\u T(T,T,T)
构造函数……这似乎是Xcode本身的一个bug。你找到解决办法了吗?