J'ai une bibliothèque dans une base de code avec quelque chose comme ce qui suit:Suggestion pour résoudre un conflit de nom d'ambiguïté enum?
namespace rat {
...
enum myEnum {
BLUE,
RED
}
...
} //namespace rat
plus tard que je tente de compiler une application dans le code de base en utilisant la bibliothèque avant et il me met en garde contre une ambiguïté quand je l'utilise rat d'espace de noms (d'un autre fichier que je ne connais pas (et qui ne m'appartient pas) qui a un enq Freq avec un gars appelé BLUE dans l'espace de noms enums dans namespace rat.
Y a-t-il un moyen dans le code d'utilisateur de dire lequel je veux en ce moment? Ou dois-je imbriquer mylibs enum dans say namespace mylib et ensuite dire rat :: enums :: BLUE ou rat :: mylib :: BLUE?
Si vous avez C++ 11, 'enum class' crée une nouvelle portée. – chris
Alors, où avez-vous placé les directives 'using namespace'? Il semble que toutes les plaintes du compilateur sont dans des espaces de noms distincts ('rat',' rat :: enums'). – Chad
Je n'ai pas C++ 11, et et l'application a un rat d'espace de noms utilisant. Cela met en évidence myEnum et enums :: Freq qui contiennent tous les deux BLEU –