我目前有一组枚举用作标志
enum Flags {
Flag1 = 1
Flag2 = 2
Flag3 = 4
Flag4 = 8
};
等等等等。然后我使用内联来使 |
允许它们组合。使用这个系统,我可以使用简单的 if 语句检查独立标志。
以这种方式打印组合标志会产生它们的总和,即:Flag2 | Flag4
会产生 10
。
我的问题是,是否有一种方法可以将当前分配给某个事物的所有标志列为独立的整数,而不是它们的总和。
最佳答案
是的。
enum Flags {
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
};
uint32_t my_flags = Flag1 | Flag2;
if(my_flags & Flag1) { cout << "I have flag 1" << endl; }
if(my_flags & Flag2) { cout << "I have flag 2" << endl; }
// etc.
你是这个意思吗?
关于C++ 独立列出所有枚举标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30930399/