// PR c++/47999 | |
// { dg-do compile { target c++11 } } | |
int& identity(int& i) | |
{ | |
return i; | |
} | |
// In a function template, auto type deduction works incorrectly. | |
template <typename = void> | |
void f() | |
{ | |
int i = 0; | |
auto&& x = identity(i); // Type of x should be `int&`, but it is `int&&`. | |
} | |
int main (int argc, char* argv[]) | |
{ | |
f(); | |
return 0; | |
} |