C++提升了如何在枚举中获得一些成员?

And*_*rew 0 c++ boost

有没有什么可以帮助在枚举中获得一些成员?

例如,为以下代码返回3:


enum SomeEnum
{
  One,
  Two,
  Three
}

Sin*_*ion 6

你所要求的并不是很明显,但假设你有一个类似的枚举:

enum Fruits
{
   Apples,
   Bananas,
   Pineapples,
   Oranges,
};
Run Code Online (Sandbox Code Playgroud)

您可以像这样修改它:

enum Fruits
{
   Apples = 0,
   Bananas,
   Pineapples,
   Oranges,
   NUM_FRUITS; // must be last, and no other fruits can be given values. 
};
Run Code Online (Sandbox Code Playgroud)

Apples = 0,不是严格必要的,它可能仍然只是Apples,因为这将是默认的结果,但它是一个好主意,因为它清楚地表明你真正关心它需要什么价值.

就这样,Fruits::NUM_FRUITS就等于4.如果你增加了两个果实,小心翼翼地将它们放在上面NUM_FRUITS,并确保所提设置为零的第一颗果实,无论是含蓄或明确,那么NUM_FRUITS将改为6.