C++核心指导原则: 枚举

C++ Core Guidelines 整理目录

  1. 哲学部分
  2. 接口(Interface)部分
  3. 函数部分
  4. 类和类层次结构部分
  5. 枚举部分
  6. 资源管理部分
  7. 表达式和语句部分
  8. 性能部分
  9. 并发和并行
  10. 错误处理
  11. 常量和不可变性
  12. 泛型编程
  13. 源文件
  14. 命名和布局建议
  15. 标准库
  16. 其他规则

Enum: 枚举

Enum.1: Prefer enumerations over macros

Enum.3: Prefer enum classes over “plain” enums

Enum.4: Define operations on enumerations for safe and simple use

Enum.5: Don’t use ALL_CAPS for enumerators

Enum.6: Avoid unnamed enumerations

Enum.7: Specify the underlying type of an enumeration only when necessary

// 枚举值比较小时可以用较小的类型来存储, 节省空间
enum class Direction : char { n, s, e, w,
                              ne, nw, se, sw };

// 声明为int32_t是多余的
enum class Web_color : int32_t { red   = 0xFF0000,
                                  green = 0x00FF00,
                                  blue  = 0x0000FF };

Enum.8: Specify enumerator values only when necessary