Перечисления объявляются как классы перечисления в области
Перечисления объявляются как классы перечисления в области.
Значения перечисления в перечислении без области действия могут конфликтовать с другими идентификаторами в той же области действия, что и перечисление, и вызывать ошибки компиляции. Например:
enum E: std::int32_t { E0, E1};
std::int32_t E0;Если использовать перечисление, таких конфликтов можно избежать. Например:
enum class E: std::int32_t { E0, E1};
std::int32_t E0;Область перечисления также запрещает неявные преобразования значений перечисления в другие типы.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Объявление |
| Категория: Обязательно, Автоматизировано |