Salut,

Voilà, je travaille sous Visual C++ 6 (qui n'est pas très fort en template ), et du coup je voudrais savoir si c'est mon code qui n'est pas bon, ou lui

J'ai une fonction pour instancier un dérivé de Composant, qui compile très bien:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 template <typename T>
Composant* ManagerComposant::instancier(std::string _strFichier)
{
	// static_cast le template en composant : erreur de compilation si le cast n'est pas possible
	Composant* pComposant = static_cast<Composant*>(new T);
 
	// .... beaucoup d'autre code ....
}
mais à l'utilisation ça se passe moins bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
return instancier<Vecteur>(_strFichier);
J'obtiens l'erreur : error C2275: 'Vecteur' : illegal use of this type as an expression

Est-ce que ça vous à l'air correct ?
merci!

(ps: j'utilise une fonction parcequ'elle instancie le composant et fait plein de traitements dessus, qui sont indépendants du type réél du composant)