IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

Probl�me de class template et std::map


Sujet :

Langage C++

  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 20
    Par d�faut Probl�me de class template et std::map (R�solue)
    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 :

    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 );
    };
    La class CResourcesManager sert � �tre h�rit� par une autre class, comme
    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.

    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;
    }
    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.

    Est-ce que c'est normal ?

    Merci d'avance.

    Bathof

  2. #2
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Il faut rajouter le mot cl� typename.

    Cela donne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    typename std::map< std::string, CResource<T> >::iterator it;
    Cf : http://c.developpez.com/faq/cpp/inde...LATES_typename

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 20
    Par d�faut
    Merci beaucoup.

    J�aurais d� y penser

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me de classe "template"
    Par Josiane22 dans le forum C++
    R�ponses: 3
    Dernier message: 27/03/2013, 23h04
  2. Probl�me de classes template + CRTP
    Par Kaluza dans le forum Langage
    R�ponses: 20
    Dernier message: 05/08/2012, 10h46
  3. Acceder a la fonction membre d'une classe, dans une std::map
    Par student_php dans le forum D�buter
    R�ponses: 2
    Dernier message: 10/05/2011, 20h38
  4. probl�me avec classe template
    Par arthurembo dans le forum Langage
    R�ponses: 2
    Dernier message: 09/02/2009, 07h46
  5. Probl�me d�claration classe template
    Par olivier1978 dans le forum Langage
    R�ponses: 3
    Dernier message: 21/11/2007, 23h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo