che sto cercando di fare una semplice classe Vector (matematica) in questo modo:: come controllare il numero di argomenti del costruttore utilizzando la variabile del modello.
template <int D, typename T = float>
class Vector
{
T m[D];
// ...
};
Dove D
è il numero di dimensioni. Se è due, il vettore memorizzerà due valori di tipo T
.
Come posso dichiarare la funzione di costruzione di prendere D
argomenti di tipo T
?
Vector<2> v(1.0f, -6.3f);
Come aggiungere una funzione solo se D
se un numero specifico? Vorrei aggiungere GetX()
se D
è> = 1, GetY()
se D
è> = 2 e GetZ()
se D
è> = 3, ma il seguente codice dovrebbe generare un errore di compilazione:
Vector<2> v(1.0f, -6.3f);
cout << v.GetZ() << endl;
come generare un errore in fase di compilazione se D è < 1?
Non sto seguendo uno standard specifico, tutto funzionerà per me.
È possibile utilizzare i modelli varadic – Dani
non '' Vector <-1> senso? :) Vorrei usare 'std :: size_t' invece di' int'. – GManNickG
@GMan 'Vector <0>' anche non ha senso. Comunque, 'size_t' è migliore. –