枚举中的“常量”数

时间:2011-07-23 19:31:08

标签: c++

  

可能重复:
  (How) can I count the items in an enum?

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

enum C{id,value};

稍后这将返回2:

//pseudo code
get<C>::value 

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

2 个答案:

答案 0 :(得分:5)

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

enum C { id = 0, value, size };

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

答案 1 :(得分:1)

用于此的常见习语是

enum C {
    id,
    value,
    LAST_ENUM_C // or something similar.
};

但是假设这里的枚举值没有间隙(即没有id = 3, value = 15)。

相关问题