| // Core DR 1604/1571/1572 |
| // { dg-require-effective-target c++11 } |
| |
| struct Banana { }; |
| struct Enigma { operator const Banana(); }; |
| struct Doof { operator Banana&(); }; |
| void enigmatic() { |
| typedef const Banana ConstBanana; |
| Banana &&banana1 = ConstBanana(); // { dg-error "" } |
| Banana &&banana2 = Enigma(); // { dg-error "" } |
| Banana &&banana3 = Doof(); // { dg-error "" } |
| } |
| |
| class A { |
| public: |
| operator volatile int &(); |
| }; |
| A a; |
| |
| const int & ir1a = a.operator volatile int&(); // { dg-error "" } |
| const int & ir2a = a; // { dg-error "" } |
| |
| struct X { |
| operator int&(); |
| } x; |
| int&& rri2 = X(); // { dg-error "" } |