Bonjour !

J'ai déclaré un typedef vers une std::map dans une classe template, mais le compileur m'embête quand je l'utilise depuis une fonction de la classe définie en dehors.
Donc je voulais savoir si vous aviez des indications à me donner :
Question numéro 1 : pourquoi ?
Question numéro 2 : la seule solution est elle de définir la fonction dans la classe elle même ?


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
template <class T_Resource>
class ResourceManager
{
public:
    T_Resource* getResource(const Identifier& identifier);
 
private:
    typedef std::map< Identifier, T_Resource* > ResourceMap;
    ResourceMap mResources;
};
 
 
template <class T_Resource>
T_Resource* ResourceManager<T_Resource>::getResource(const Identifier& identifier)
{
    ResourceMap::iterator it = mResources.find(identifier); /// Erreur de compilation : error: expected `;' before "it" || error: `it' was not declared in this scope
}
Merci d'avance !