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

GCC Discussion :

Probl�me std::list + templates GCC/G++ 4.x


Sujet :

GCC

  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par d�faut Probl�me std::list + templates GCC/G++ 4.x
    Suite de mes probl�mes de hier, un autre morceau du code que je dois reprendre (fait sous VisualStudio2005) n'est pas accept� :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    template<typename T,typename ACTION>
    ACTION *Ia<T,ACTION>::createTree(GeneralTree<Situation<T,ACTION> > *pere, int profondeur)
    {
        if (pere == 0 )
            return 0;
     
        pere->getData().setValue(valoriserSituation(pere->getData()));
     
        if ( tree == 0 )
            tree=pere;
        list<Situation<T,ACTION> > *listeSituations= this.creerSituations(pere->getData());
     
        list< Situation<T,ACTION> >::iterator it;                           // BLAM : Erreur !!!!
        for (it=listeSituations->begin();it != listeSituations->end();it++)
            pere->addChild(new GeneralTree<Situation<T,ACTION> >(*it));
     
        if ( profondeur > 1 )
            for ( pere->start(); pere->isValid(); pere->forth())
                createTree(pere->child(),profondeur-1);
        else
            for ( pere->start() ; pere->isValid() ; pere->forth() )
                pere->child()->getData().setValue(noterSituation(pere->child()->getData()));
     
     
        return pere->getData()->getAction();
    }
    Si quelqu'un a une id�e de ce qui se passe ....

  2. #2
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    C'est quoi l'erreur....

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par d�faut
    la voila

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    ia.h: In member function «ACTION* Ia<T, ACTION>::createTree(GeneralTree<Situation<T, ACTION> >*, int)»:
    ia.h:116: erreur: expected `;' before «it»
    ia.h:117: erreur: «it» was not declared in this scope

  4. #4
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    normal, il ne sait pas que
    list< Situation<T,ACTION> >::iterator
    est un type. Il faut le lui dire avec typename.
    Voir la http://c.developpez.com/faq/cpp/?pag...LATES_typename

  5. #5
    Membre habitu�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par d�faut
    Mouarf, c'est �a ...
    Les compilateurs qui font tous leur truc a leur sauce, c'est pas super ...

  6. #6
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Non, ce n'est pas qu'ils font tout � leur sauce ! C'est le standard.
    Au moment de la lecture du code templat� par n'importe quel compilateur, comment peut-il savoir que le std::vector<>::iterator est un type plut�t qu'une variable ? Il ne peut pas, il n'est pas encore � la phase d'instanciation o� il peut v�rifier que c'est bien un type - c'est pourquoi typename est interdit dans une fonction normale et dans une classe normale -.

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

Discussions similaires

  1. R�ponses: 2
    Dernier message: 15/07/2008, 17h46
  2. Probl�me de class template et std::map
    Par bathof dans le forum Langage
    R�ponses: 2
    Dernier message: 31/07/2007, 22h18
  3. R�ponses: 20
    Dernier message: 22/03/2006, 14h00
  4. [std::list][find_if] probl�me avec mes foncteurs
    Par n!co dans le forum SL & STL
    R�ponses: 12
    Dernier message: 04/02/2005, 11h56

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