1 // { dg-do compile { target c++11 } } 2 3 template <class T> T&& declval(); 4 main()5int main() 6 { 7 &declval<int>(); // { dg-error "16:taking address of rvalue" } 8 declval<int>() = declval<int>(); // { dg-error "15:using rvalue as lvalue" } 9 declval<int>()++; // { dg-error "15:using rvalue as lvalue" } 10 --declval<int>(); // { dg-error "17:using rvalue as lvalue" } 11 declval<int>() += 1; // { dg-error "rvalue" } 12 } 13