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 :

namespace, enum et librairie


Sujet :

Langage C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut namespace, enum et librairie
    Bonjour,

    J'utilise une librairie qui possède une liste d'enum inclus dans un namespace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    namespace lib{
     
        enum ProcessingState {
            ProcessingStateAsked       = 0,
            ProcessingStateProcessing  = 1,
            ...
        };
     
        enum Scenario {
            ScenarioS1 = 1,
            ScenarioS2 = 2,
            ...
        };
    }
    Dans mon code j'ai aussi une enum qui porte le même nom qu'une enum de la librairie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    enum Scenario {
            S1 = 1,
            S2 = 2,
            ...
        };
    Cette enum n'est pas inclus dans un namespace.

    Le problème arrive quand j'inclus ma librairie à l'endroit où j'utilise mon enum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "scenario.h" //<-- contient mon enum Scenario
    #include <lib.h> //<-- contient l'enum de la librairie Scenario
     
    void maFonction(Scenario scenar) //Je souhaite utilise mon enum Scenario
    {
    ...
    }
    Le compilateur me dit :
    erreur : reference to 'Scenario' is ambiguous
    Je pensais que le namespace de la librairie empêcherai le problème

    Quelle est la meilleure méthode pour éviter ce genre de problème ?
    Suis-je obliger d'ajouter une namespace à mon enum et de préfixer chaque appelle de l'enum (méthode que j'aimerai éviter car la librairie possède déjà son namespace) ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void maFonction(::Scenario scenar)
    {
    ...
    }

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    N'as-tu pas un using namespace lib qui traine ?
    Ou bien tu te trouves dans le namespace lib ?
    Dans tous les cas, oodini a donné la marche à suivre.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Effectivement, je viens de voir qu'il y a un using namespace lib dans un .h de la librairie.
    Heureusement que j'ai un peu la main sur cette librairie, je vais aller demander ce changement.

    Merci beaucoup.

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

Discussions similaires

  1. [librairies standard]slang.h et curses.h
    Par miss8 dans le forum Réseau
    Réponses: 13
    Dernier message: 27/12/2002, 10h14
  2. inclure une librairie *.lib
    Par darkbm dans le forum C
    Réponses: 2
    Dernier message: 16/12/2002, 22h48
  3. Réponses: 5
    Dernier message: 09/12/2002, 22h23
  4. [GTK]PB Librairie GTK+ sous dev-c++
    Par wozzy dans le forum Dev-C++
    Réponses: 15
    Dernier message: 05/11/2002, 14h55
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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