Enumerations
Enum.7
Указывайте базовый тип перечисления только при необходимости
Причина
Тип по умолчанию проще читается и записывается. int — стандартный целочисленный тип. int совместим с C-перечислениями.
Пример
enum class Direction : char { n, s, e, w,
ne, nw, se, sw }; // базовый тип экономит память
enum class Web_color : int32_t { red = 0xFF0000,
green = 0x00FF00,
blue = 0x0000FF }; // базовый тип избыточен
Примечание
Указание базового типа необходимо для предварительного объявления enum или enum class:
enum Flags : char;
void f(Flags);
// ....
enum Flags : char { /* ... */ };
или чтобы гарантировать, что значения данного типа имеют заданную битовую ширину:
enum Bitboard : uint64_t { /* ... */ };
Контроль
????