Bonjour,
J'ai un petit problème de taille avec mes class templates et std::map
Je m'explique :
J'ai les class templates suivante :
La class CResourcesManager sert à être hérité par une autre class, comme
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 template <typename T> class CResource { // ... }; template <typename T> class CResourcePtr { // ... }; template <typename T> class CResourcesManager { std::map< std::string, CResource<T> > m_resources; CResourcePtr<T> getResource( const std::string& name ); };
l'exemple si-dessous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class CTexturesManager : CResourcesManager<int> { // ... };
Mon problème, ça trouve dans la class CResourcesManager, ou plus précisément dans l’une de ses fonctions membres qui est celle-ci.
J'ai l'impression qu'il n'aime pas CResource<T> dans std::map, car si je le remplace par CResource<int>, il n'y a pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template <typename T> CResourcePtr<T> CResourcesManager<T>::getResource( const std::string& path ) { // Erreur ICI, le compilateur n'est pas contant :( std::map< std::string, CResource<T> >::iterator it; }
Est-ce que c'est normal ?
Merci d'avance.
Bathof
Partager