// Testcase for an extension to allow return type deduction when the lambda | |
// contains more than just a single return-statement. | |
// { dg-do run { target c++14 } } | |
bool b; | |
template <class T> | |
T f (T t) | |
{ | |
return [=] { | |
auto i = t+1; | |
if (b) | |
return i+1; | |
else | |
return i+1; | |
}(); | |
} | |
int main() | |
{ | |
// Pointless, but well-formed. | |
[] { return 1; return 2; }(); | |
if (f(1) != 3) | |
return 1; | |
} |