Voglio scrivere un modello vettoriale matematico. Ho una classe che accetta tipo e dimensione come argomento del modello, con molti metodi operativi matematici. Ora voglio scrivere specializzazioni in cui Vector < 3> per esempio ha x, y, z come membri che si riferiscono rispettivamente ai dati [0..3].C++ - Usa modello predefinito come base per la specializzazione
Il problema è che non so come creare una specializzazione che eredita tutto dal modello predefinito senza creare una classe base o scrivere tutto due volte.
Qual è il modo più efficiente per farlo?
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
};
Creazione di una classe base è l'approccio tipico lì. –