J'utilise des templates définis de cette façon :

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 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
 
 
class Titi
{
public:
	Titi();
	virtual ~Titi(void);
 
	int a;
}
 
class Toto
{
public:
	Toto();
	virtual ~Toto(void);
 
protected:
	template <> T_TemplateType1<Titi> * m_MyTiti;
 
};
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 :
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 ?