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