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:
mais à l'utilisation ça se passe moins 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 .... }
J'obtiens l'erreur : error C2275: 'Vecteur' : illegal use of this type as an expression
Code : Sélectionner tout - Visualiser dans une fenêtre à part return instancier<Vecteur>(_strFichier);
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)
Partager