Я пытался создать основной тип перечисления с дочерними перечислениями, чтобы улучшить читаемость и использование.Вот пример того, что я имею в виду:
enum TileType {
enum Ground {
FLAT,
SLOPE // ...
},
enum Props {
SIGN // ...
}
// ...
};
, на который можно ссылаться как TileType type = TileType::Ground::FLAT
для лучшей иерархии.
Я думал об обертывании перечислений в пространстве имен:
namespace TileType {
enum Ground {
FLAT,
SLOPE // ...
};
enum Props {
SIGN // ...
};
// ...
};
Я могу использовать его как int TileType::Ground::FLAT
, но я не смогу различить Ground
из Props
, поскольку Ground::FLAT
и Props::SIGN
оба будут равны 0.
Использованиеenum class
может быть то, что я ищу, но я не смогу получить TileType type = TileType::Ground::Flat
, так как каждое перечисление будет различным классом.