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()19 Flags windowState()
20 {
21   return Flags();
22 }
23 
main()24 int main()
25 {
26   if (bool(windowState() & Enum1) == true)
27     return 1;
28   return 0;
29 }
30