Sur this question, il y a an answer que les États:Opérateur de résolution d'étendue sur enums une extension spécifique au compilateur?
Vous pouvez utiliser typedef pour faire type d'énumération couleur accessible sans spécifier son « nom complet ».
typedef Sample::Colour Colour; Colour c = Colour::BLUE;
Cela semble correct pour moi, mais quelqu'un vers le bas a voté et a laissé ce commentaire:
Utilisation de l'opérateur de résolution de portée :: sur énumérations (comme dans « Couleur :: BLUE ») est une extension spécifique au compilateur, non standard. C++
Est-ce vrai? Je crois que je l'ai utilisé à la fois sur MSVC et GCC, même si je n'en suis pas certain.
Hm, vous avez raison. Maintenant que j'y pense, ce que j'ai utilisé était l'équivalent de 'Sample :: BLUE', pas de' Color :: BLUE'. Merci. –
Remarque: ce n'est pas la norme pour C++ 98. C'est la norme en C++ 11. –