P0428R2 - familiar template syntax for generic lambdas
[official-gcc.git] / gcc / testsuite / g++.dg / cpp2a / lambda-generic1.C
blob9f6304bbc695183631a873cef0b20fdd4a9d233a
1 // P0428R2
2 // { dg-do compile { target c++14 } }
4 int i = [](int i, auto a) { return i; }(3, 4);
5 int j = []<class T>(T t, int i) { return i; }(3, 4);              // { dg-error "lambda templates are only available with" "" { target c++17_down } }
6 int k[2] = { 5, 6 };
7 int l = []<typename T>(T *p) { return *p; }(k);                   // { dg-error "lambda templates are only available with" "" { target c++17_down } }
8 int m = []<typename T, int N>(T (&a)[N]) { return a[N - 1]; }(k); // { dg-error "lambda templates are only available with" "" { target c++17_down } }
9 int n = []<typename T>(T a, auto b) { return a + b; }(7, 8);      // { dg-error "lambda templates are only available with" "" { target c++17_down } }