如何求枚举类型定义中枚举值的个数?
比如
enum aaa {A, B, C};
enum a { D};
求算法enum_size使:
aaa |--> 3
a |--> 1
要求不能修改枚举类型的定义,不能给枚举类型的定义加上特殊限制,比如:
而且对任何枚举类型都有效的方式。
一般情况下enum_size是一个模板类:
template <typename Enum_type>
struct enum_size
{
enum { value = .... }
};
或者其他实现方式。
比如
template <typename E>
size_t enum_size(E e)
{
}
虽然写成函数形式,但只依赖于类型不同才会返回不同的值。
已有的感觉好像是不太可能。
不过还是来征求一下大家的意见。