我正在创建一个矢量类,并试图找出重用不同大小向量的最大代码量的方法.这是一个基本的例子:
template<typename T, unsigned int D>
class Vector
{
public:
union {
T v[D];
struct {
/* T x;
* T y;
* T z;
* T w;
*/
};
};
Vector()
{
for(unsigned int i=0; i<D; ++i)
(*this)[i] = T(0);
}
Vector(T scalar)
{
for(unsigned int i=0; i<D; ++i)
(*this)[i] = scalar;
}
inline T operator[](int i) { return (*this).v[i]; }
};
Run Code Online (Sandbox Code Playgroud)
我希望成员变量可以公开访问.例如:
Vector<float,2> vec;
printf("X: %.2f, Y: %.2f\n", vec.x, vec.y);
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的事情:
template<typename T>
class Vector2 : public Vector<T,2, …Run Code Online (Sandbox Code Playgroud)