枚举中的"常量"数

sma*_*llB 2 c++

可能重复:(
如何)我可以计算枚举中的项目?

有没有办法获得枚举中的常量数?
例如:

enum C{id,value};
Run Code Online (Sandbox Code Playgroud)

以后这将返回2:

//pseudo code
get<C>::value 
Run Code Online (Sandbox Code Playgroud)

而且,是否可以通过[] optor访问这些常量?喜欢ie:
C [0]会返回id

Pup*_*ppy 5

通常,从零开始,最后一个成员给出枚举的大小,不包括它.

enum C { id = 0, value, size };
Run Code Online (Sandbox Code Playgroud)

C::size是枚举的大小.是否可以通过下标访问这些常量?不,不幸的是,绝对不可能.但是,在这种情况下,你真的不想要枚举 - 你只需要一个常量数组.

  • 实际上,这里只是"尺寸",而不是"C ::尺寸".枚举将其常量值注入包含范围.因此,通常你想使用`C_size`或其他东西作为名称 (4认同)