CppCoreGuidelines Enum.7 只有必要的时候才指定枚举项的数据类型
05 February 2023
“Specify the underlying type of an enumeration only when necessary”
理由
默认的方式更容易阅读和编写。 int 是默认的整型值,int 与 C 枚举兼容。
例子
enum class Direction : char { n, s, e, w, ne, nw, se, sw }; // underlying type saves space enum class Web_color : int32_t { red = 0xFF0000, green = 0x00FF00, blue = 0x0000FF }; // underlying type is redundant
注意
在提前声明枚举类型的时候,你必须指明内部用什么数据类型:
enum Flags : char; void f(Flags); // .... enum Flags : char { /* ... */ };