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 :

erreur de compilation iterator


Sujet :

Langage C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut erreur de compilation iterator
    Bonjour, je ne sais vraiment pas ce que je fais de mal dans ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    set<noeud> fonction(int a, int b){
      map<noeud, set<job> >::iterator i;
      return set<noeud>();
    }
    cela me donne comme erreurs:
    error: 'job' cannot appear in a constant-expression
    error: template argument 1 is invalid
    error: template argument 2 is invalid
    error: template argument 3 is invalid
    error: template argument 2 is invalid
    error: template argument 4 is
    error: expected initializer before 'i'

    Et lorsque j'enlève les arguments a et b de ma fonction, cela marche....
    Quelqu'un aurait une explication?
    Merci

    EDIT:
    En fait je suis bête, j'avais passé en paramètre à ma fonction une variable 'job'.
    Y a donc conflit....

  2. #2
    Membre expérimenté Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    Décembre 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 170
    Par défaut
    Tu devrais te trouver des conventions d'écriture pour éviter les conflits. Pour moi tous les types (classes, typedef...) commencent par une majuscule, les variables par une miniscule, les paramètres de template et les définitions préprocesseur (define, macro..) sont tout en majuscules.
    Ca permet au moins, en cas de conflit, d'avoir des erreurs plus parlantes.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Cuauhtémoc Voir le message
    En fait je suis bête, j'avais passé en paramètre à ma fonction une variable 'job'.
    Intéressant. Ne serait-ce pas qu'un des deux était mal (ici, probablement pas assez précisément) nommé ? 'current_job' ? 'next_job' ? 'running_job' 'job_to_stop' ? etc... Bien nommer ses entités est beaucoup plus important qu'on ne l'imagine.

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

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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