| // PR c++/57068 | |
| enum Enums { | |
| Enum1 = 0x00000000, | |
| Enum2 = 0x00000001 | |
| }; | |
| class Flags { | |
| public: | |
| Flags() : i(0) {} | |
| Flags(int i): i(i) {} | |
| Flags operator&(Enums f) { return Flags(Enums(i & f)); } | |
| operator bool() { return i; } | |
| private: | |
| int i; | |
| }; | |
| Flags windowState() | |
| { | |
| return Flags(); | |
| } | |
| int main() | |
| { | |
| if (bool(windowState() & Enum1) == true) | |
| return 1; | |
| return 0; | |
| } |