数学ベクトル テンプレートを書きたいです。多くの数学演算メソッドを使用して、型とサイズをテンプレート引数として受け入れるクラスがあります。ここで、たとえば Vector<3> がそれぞれ data[0..3] を参照するメンバーとして x、y、z を持つ特殊化を作成したいと考えています。
問題は、基本クラスを作成したり、すべてを 2 回書いたりせずに、デフォルトのテンプレートからすべてを継承する特殊化を作成する方法がわからないことです。
これを行う最も効率的な方法は何ですか?
template<class Type, size_t Size>
class Vector {
// stuff
};
template<class T>
class Vector<3,T>: public Vector {
public:
T &x, &y, &z;
Vector(): Vector<>(), x(data[0]), y(data[1]), z(data[2]){}
// and so on
};