【发布时间】:2016-01-30 19:58:27
【问题描述】:
我有一个 template class 有很多函数,只想专门化其中的几个,同时还添加一个成员变量。
这是否可能不需要重新实现专用类的所有功能?
我有什么:
template<class T> class Vector3
{
union {
T data[3];
struct { T x, y, z; };
};
//a lot of functions
T Length() { ... };
};
我想做什么:
template<> class Vector3<float>
{
union {
float data[3];
struct { float x, y, z; };
//new union member only for <float>!
__m128 xmm;
};
float Length() {
//special instructions for special case <float>
};
};
由于 95% 的功能保持完全相同,我绝对不想为每一个专业化重新实现它们。我怎样才能做到这一点?
【问题讨论】:
标签: c++ templates c++11 template-specialization