J'utilise des templates définis de cette façon :
Quand j'utilise ces template, c'est de cette façon là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 template <class T>class T_TemplateType1 { public: T_TemplateType1(); virtual ~T_TemplateType1(); int Methode1(); T ** m_ListeElements; }; template <class T> T_TemplateType1<T>::T_TemplateType1() { // initialisation... } template<class T> int T_TemplateType1<T>::Methode1() { // code de la méthode } // etc pour le reste des méthodes
Quand je compile ce type de code avec VC++ pas de pb, quand je le compile avec MinGW, j'ai l'erreur pour la classe Toto :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class Titi { public: Titi(); virtual ~Titi(void); int a; } class Toto { public: Toto(); virtual ~Toto(void); protected: template <> T_TemplateType1<Titi> * m_MyTiti; };
error: invalid explicit specialization before '>' token
Clairement, MinGW n'aime pas mon <>, toutefois je ne vois pas quoi mettre et je ne comprend pas pourquoi je devrai mettre Titi comme dans la seconde partie de la déclaration.
J'ai essayé de mettre void mais là non plus le compilateur n'aime pas.
Une idée ?
Partager