在C ++中,“枚举类”与“枚举”之间的内存使用量是否存在差异?

时间:2016-07-12 18:39:56

标签: c++11 enums

我理解使用强类型“枚举类”而不是“枚举”的好处,但是同学和我想知道一个或另一个是否会占用更多内存。

1 个答案:

答案 0 :(得分:3)

enum class仍然只是整数值,没有额外的开销。但是,enum class的基础类型默认为int,而常规enum类型未指定,并且实现可以自由选择最小整数类型。因此,理论上如果您没有指定基础类型,enum class可能比普通enum更大。

C ++规范7.2.5 - 枚举减速

enum class

  

可以使用enum-base明确指定基础类型;如果未明确指定,则作用域枚举类型的基础类型为int

enum

  

如果没有为第一个枚举器指定初始值设定项,则初始化值具有未指定的积分   类型。