1 // PR c++/57068 2 3 enum Enums { 4 Enum1 = 0x00000000, 5 Enum2 = 0x00000001 6 }; 7 8 class Flags { 9 public: Flags()10 Flags() : i(0) {} Flags(int i)11 Flags(int i): i(i) {} 12 Flags operator&(Enums f) { return Flags(Enums(i & f)); } 13 14 operator bool() { return i; } 15 private: 16 int i; 17 }; 18 windowState()19Flags windowState() 20 { 21 return Flags(); 22 } 23 main()24int main() 25 { 26 if (bool(windowState() & Enum1) == true) 27 return 1; 28 return 0; 29 } 30