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 :

Changement de compilateur gcc


Sujet :

GCC

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut Changement de compilateur gcc
    Bonjour,
    Je travaille sous DEV C++ 4.9.9.2. Je compile avec gcc 3.4.2.
    Mon pb est que j'ai récupéré un code sous Internet qui compile sous gcc 3.2 mais pas sous gcc 3.4.2.
    Voici le code qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    template <class C>
    struct CUneStruct
    {
      typedef MeilleurVoisin<C> VoisinSelection;
      ...
    };
    Le compilateur me dit qu'il attend un ";" avant le "<".
    Dans la mesure où je suis novice en c++, je ne vois pas ce qui cloche.
    Merci de votre aide.

  2. #2
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    J'ajoute que MeilleurVoisin est une classe définie comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    template <class C>
    class MeilleurVoisin
    {
       ...
    }

  3. #3
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    La solution semble être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef typename C::MeilleurVoisin VoisinSelection;
    Ca compile mais je ne suis pas sûr de la réponse...

  4. #4
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    non, ce n'est pas la bonne solution...

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    MeilleurVoisin est bien définie avant la classe qui l'utilise ?

    Sinon: ECM (exemple minimal et complet (tu devrais pouvoir tenir en moins de 15 lignes)) + messages d'erreur générés.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    oui, MeilleurVoisin est bien définie avant.
    Voici la structure complète de mon code.
    J'ai deux fichiers .h appelés dans un main de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include "premierfichier.h"
    #include "deuxiemefichier.h"
    Le premier fichier possède :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    template <class C>
    class MeilleurVoisin
    {
        ...
    }
    Le deuxième fichier possède :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    template <class C>
    struct CUneStructure
    {
      typedef MeilleurVoisin<C> VoisinSelection;
      ...
    }
    A la compilation avec gcc 3.4.2, j'obtiens le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ISO C++ forbids declaration of 'MeilleurVoisin' with no type
    expected ';' before '<' token
    Voilà, j'espère avoir clarifié mon pb.
    Merci

  7. #7
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    Le pb est résolu, j'avais un pb d'include.
    Le compilateur gcc 3.2 ne doit pas compiler lesz fichiers dans le même ordre que gcc 3.4.2.
    Je remercie tous ceux qui ont accordé un peu de temps à mon pb.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RPM] Installation du compilateur GCC/G++
    Par Longrais dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 17/04/2007, 09h23
  2. Installer le compilateur Gcc-3.0
    Par samy100 dans le forum Applications et environnements graphiques
    Réponses: 10
    Dernier message: 27/08/2006, 04h44
  3. Bien régler son compilateur gcc?
    Par Premium dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 06/03/2006, 15h21
  4. [KUBUNTU] Problème avec le compilateur gcc
    Par kitsune dans le forum Ubuntu
    Réponses: 3
    Dernier message: 13/02/2006, 13h44
  5. Inserer de l'assembleur en c avec le compilateur gcc
    Par KORTA dans le forum Autres éditeurs
    Réponses: 9
    Dernier message: 20/08/2003, 03h19

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