[VC++ 6] Problème de déclaration de template
Bonsoir,
j'utilise pour le 1ère fois les templates (car je m'inspire d'un code que j'ai trouvé)
je définis la classe Vector:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
template<
class T = double, // Type of the components
const int n // Cardinality of the vector
>
class Vector
{
protected:
T v[n];
public:
Vector()
{
}
etc...etc
}; |
puis la classe Matrix
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
template<
class T = double, // Type of the components
const int n, // Rows
const int m // Cols
>
class Matrix
{
protected:
Vector<T,m> M[n];
public:
Matrix()
{
}
etc...etc
}; |
La classe Vector est parfaitement compilée
mais la classe Matrix, pourtant similaire, me donne l'erreur :
error C2233: '<Unknown>' : arrays of objects containing zero-size arrays are illegal
à la ligne "Vector<T,m> M[n];"
Je tourne en rond : évidemment la taille n'est pas encore spécifiée, j'en suis qu'à la définition de la classe !
Comment m'en sortir ?
Merci d'avance
Philippe