Оставляя в стороне синтаксическую ошибку, вызванную book stories
, вы можете сделать свои объявления enum
однозначными, поместив их в область видимости:
struct Elements {
enum element {
ICE, FIRE, EARTH, WIND, NONE
};
};
struct BookStories {
enum book_stories {
FK, IK, EK, WK, NONE
};
};
Ссылаясь на Elements::NONE
и BookStories::NONE
будеттогда однозначно.
Другой способ сделать область действия перечислений - это использовать enum class
(начиная с c ++ 11):
enum class element {
ICE, FIRE, EARTH, WIND, NONE
};
enum class book_stories {
FK, IK, EK, WK, NONE
};