专栏首页C++核心准则原文翻译C++核心准则Enum.7: 只在必要时定义枚举的底层类型

C++核心准则Enum.7: 只在必要时定义枚举的底层类型

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

Enum.7: 只在必要时定义枚举的底层类型

Reason(原因)

The default is the easiest to read and write. int is the default integer type. int is compatible with C enums.

默认的类型更容易读写。int是默认的整数类型。int和C语言枚举类型兼容。

Example(示例)

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
Note(注意)

Specifying the underlying type is necessary in forward declarations of enumerations:

在前置声明枚举时需要定义枚举的底层类型。

enum Flags : char;

void f(Flags);

// ....

enum flags : char { /* ... */ };
Enforcement(实施建议)

????

原文链接:

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#enum7-specify-the-underlying-type-of-an-enumeration-only-when-necessary


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

本文分享自微信公众号 - 面向对象思考(OOThinkingDalian),作者:面向对象思考

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++核心准则E.6:使用RAII防止资源泄露

    Leaks are typically unacceptable. Manual resource release is error-prone. RAII (...

    面向对象思考
  • C++核心准则ES.31:不要用宏定义常量或函数​

    Macros are a major source of bugs. Macros don't obey the usual scope and type ru...

    面向对象思考
  • C++核心准则C.50:如果在构造过程中需要“虚行为”,使用工厂函数

    C.50: Use a factory function if you need "virtual behavior" during initializatio...

    面向对象思考
  • SAP UI5 - 也支持双向绑定

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。

    Jerry Wang
  • hadoop关注点

    Browser Interface A typical HDFS install configures a web server to expose the H...

    闵开慧
  • 内核驱动驱动对象 Driver_OBJECT

    在内核中. 每一个驱动模块都是一个驱动对象. 都有一个 DRIVER_OBJECT结构体代表. 可以想象成驱动对象是一个进程容器. 容纳百川. 下面针对驱动对...

    IBinary
  • WPF will break when an exception be throw in the StylusPlugIn

    We can write a class that inherits the StylusPlugIn. And this class can get the ...

    林德熙
  • OCCI处理CHAR类型字符串变量的不同

    一个旧应用,原先应用是用proc写的,9i的库,现在应用需要改为使用OCCI,其中有一段查询逻辑:select ... where upper(state)=u...

    bisal
  • Creating a Connection Between Enterprise Search and SAP HANA for ABAP CDS-Based Search Models

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Jerry Wang
  • la----3695 City Game(最大子矩阵)

    Bob is a strategy game programming specialist. In his new city building game the...

    Gxjun

扫码关注云+社区

领取腾讯云代金券