应用关于如何递增枚举的规则

neo*_*nix 5 c++ enums increment rule

有没有办法改变枚举设置其常量值的方式?通常它会增加一,但我想应用另一条规则。在 PAWN 中这可以工作

enum (<<=1) {
 a = 1,//0b001
 b,//0b010
 c//0b100
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在 C++ 中做到这一点?

bol*_*lov 4

不会自动,但您可以手动指定每个值

enum X {
  a = 0x01,
  b = 0x02,
  c = 0x04
};
Run Code Online (Sandbox Code Playgroud)

  • @sharptooth 我不明白你如何使用模板来做到这一点。如果你能指出一种方法,我会很感兴趣。 (2认同)