如果我想使用二进制“标志”来表示状态或选项或类似的东西,以便我可以传递它们并将它们存储到一个对象OPTION1 | OPTION2
,比如OPTION1
0001 和OPTION2
0010,这样传递的就是 0011,代表选项的混合.
我将如何在 C++ 中做到这一点?我在想类似的东西
enum Option {
Option_1 = 0x01,
Option_2 = 0x02,
Option_3 = 0x04,
//...
}
void doSomething(Option options) {
//...
}
int main() {
doSomething(Option_1|Option_2);
}
但理想情况下,doSomething
知道如何解释给定的选项。
我在正确的轨道上吗?有没有更好的办法?
更新
而且我不是必须Option
为每个可能的组合定义一个吗?