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

Autres éditeurs Discussion :

"vector" provoque "syntax error", malgré


Sujet :

Autres éditeurs

  1. #1
    Candidat au Club
    Inscrit en
    Août 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut "vector" provoque "syntax error", malgré
    bonjour!
    j'ai installé la mandrake 9.1, distribué avc le compilateur gcc version 3.2.2.
    je veux installer un logiciel libre appelé treeplot. A la compilation il me met plusieurs messages d'erreurs et la compilation finit par avorter. Parmi les messages d'erreur qu'il m'affiche, celui ci en particulier m'intrigue (le premier):

    >vecteurs.h:29: `vector' undeclared (first use this function)

    pourtant <vector> est bien inclus en debut du fichier vecteurs.h:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    23 #ifndef VECTEUR_H
    24 #define VECTEUR_H
    25
    26 #include <vector>
    27 #include <string>
    28 
    29 class VecteurLD:public vector<long double>  {
    30 };
    ...............
    faut il que j'installe la librairie STL indépendemment? ou faut il que j'installe une ancienne version du compilateur? ou ya -il une autre solution?
    merci pour votre aide;
    seenkay!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    à tout hasard essaie <vector.h>

  3. #3
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 342
    Points : 130 323
    Points
    130 323
    Billets dans le blog
    1
    Par défaut
    C'est une erreur classique (vector.h ne fonctionnera pas). Le programme n'est pas conforme aux standards C++ actuels, lié à un défaut de conformité de gcc 2.x qui ne signale pas l'oubli de using namespace std.

    Tu as trois solutions :
    - Compiler sous gcc 2.x
    - Utiliser l'option de gcc 3.x pour supposer using namespace std; par défaut, mais je ne suis pas arrivé à mettre la main dessus
    - Ajouter la ligne using namespace std; dans chaque fichier source, après le bloc des #include.

  4. #4
    Candidat au Club
    Inscrit en
    Août 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai inséré using namespace std; et ca marche!
    merci pour ton aide Anomaly! et Korta merci d'avoir repondu!
    ciao

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Points : 253
    Points
    253
    Par défaut
    Salut!
    Autant pour moi c'est pour ca que je disais a tout hasard.
    A bientot!

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    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 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Dans l'absolu (si tu ne compilais pas le programme d'un autre), la "bonne" solution est:
    - d'utiliser systématiquement: "std::vector<type_element>" dans les fichiers d'entêtes et les endroits où il peut y avoir un conflit de noms ;
    - de faire des "using namespace std;" dans les endroits où il n'y a pas de risque de conflit quelque soit les symbôles de la SL employés (un peu bourrin comme approche) ;
    - de faire des "using std::vector;" dans une portée où l'on n'aurait besoin que de std::vector<> et pas d'autre élément de la SL.

    C'est surtout le premier point qui est important. Après, c'est juste une question de fainéantise.


    Sinon, le défaut de conformité concerne surtout les bouquins et autres références antédéluviennes qui trainnent un peu partout. Il me semble bien que GCC 2.95 supportait déjà les nouveaux entêtes tout en continuant de supporter l'ancienne norme.

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

Discussions similaires

  1. Syntaxe de quotes pour chaines imbriquées
    Par gtrennert dans le forum jQuery
    Réponses: 2
    Dernier message: 15/02/2014, 19h17
  2. souci syntaxe avec quote
    Par mussara dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2009, 11h26
  3. Réponses: 16
    Dernier message: 28/06/2007, 17h10
  4. [VB6>VB.NET] Comment coder "break on all errors"
    Par RiiiDD dans le forum VB.NET
    Réponses: 5
    Dernier message: 07/03/2006, 12h53

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