Bonjour,
J'utilise une librairie qui possède une liste d'enum inclus dans un namespace :
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
6
7
8
9
10
11
12
13
14 namespace lib{ enum ProcessingState { ProcessingStateAsked = 0, ProcessingStateProcessing = 1, ... }; enum Scenario { ScenarioS1 = 1, ScenarioS2 = 2, ... }; }
Cette enum n'est pas inclus dans un namespace.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 enum Scenario { S1 = 1, S2 = 2, ... };
Le problème arrive quand j'inclus ma librairie à l'endroit où j'utilise mon enum:
Le compilateur me dit :
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 { ... }
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) ?
Partager