// Explicit generic lambda test from N3690 5.1.2.5 // { dg-do compile { target c++1y } } #include int main() { auto glambda = [] (A a, B&& b) { return a < b; }; bool b = glambda(3, 3.14); // OK auto vglambda = [] (P printer) { return [=] (T&& ... ts) { // OK: ts is a function parameter pack printer(std::forward(ts)...); return [=]() { printer(ts ...); }; }; }; auto p = vglambda( [] (A v1, B v2, C v3) { std::cout << v1 << v2 << v3; } ); auto q = p(1, 'a', 3.14); // OK: outputs 1a3.14 q(); // OK: outputs 1a3.14 }