* g++.dg/cpp1y/lambda-generic.C: Remove libstdc++ dependency.
From-SVN: r257001
This commit is contained in:
parent
d78201d30c
commit
ea070f267c
1 changed files with 5 additions and 4 deletions
|
@ -1,22 +1,23 @@
|
|||
// Generic lambda test from N3690 5.1.2.5
|
||||
// { dg-do compile { target c++14 } }
|
||||
|
||||
#include <iostream>
|
||||
struct A { } cout;
|
||||
template <class T> A& operator<<(A& a, T);
|
||||
|
||||
int main()
|
||||
{
|
||||
auto glambda = [](auto a, auto&& b) { return a < b; };
|
||||
bool b = glambda(3, 3.14); // OK
|
||||
auto vglambda = [](auto printer) {
|
||||
return [=](auto&& ... ts) { // OK: ts is a function parameter pack
|
||||
printer(std::forward<decltype(ts)>(ts)...);
|
||||
return [=](auto ... ts) { // OK: ts is a function parameter pack
|
||||
printer(ts ...);
|
||||
return [=]() {
|
||||
printer(ts ...);
|
||||
};
|
||||
};
|
||||
};
|
||||
auto p = vglambda( [](auto v1, auto v2, auto v3)
|
||||
{ std::cout << v1 << v2 << v3; } );
|
||||
{ cout << v1 << v2 << v3; } );
|
||||
auto q = p(1, 'a', 3.14); // OK: outputs 1a3.14
|
||||
q(); // OK: outputs 1a3.14
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue