Используйте enum class
Рекомендуется писать enum class (C++11) вместо старого enum в стиле С для:
- ограничения области видимости и предотвращения конфликтов;
- типобезопасности (нет неявных преобразований)
- возможности указания типа значений (по умолчанию int)
Неправильно:
enum Color { red, green, blue };
enum TrafficLight { red, yellow, green }; // Ошибка: red и green уже определены!
Правильно:
enum class Color { red, green, blue };
enum class TrafficLight { red, yellow, green }; // OK, разные пространства имён
Теперь нужно явно указывать область: