i386: Refactor get_intel_cpu
[official-gcc.git] / gcc / testsuite / g++.dg / abi / lambda-tpl1.h
blob376c3f6a2f4ef15766c4e4cfc61e466f4e614248
1 inline auto l_auto = [] (auto) {};
3 inline auto l_tpl = [] <typename T> (T) {};
5 inline auto l_tpl_auto = [] <typename T> (T, auto) {};
7 inline auto l_tpl_nt_ary = [] <int I> (int (&)[I]) {};
9 inline auto l_tpl_nt_auto = [] <auto I = 0> () {};
11 template<typename T, unsigned I> class U;
13 template<template<typename, unsigned> typename> class TPL {};
14 inline auto l_tpl_tpl = [] <template<typename, unsigned> typename T> (TPL<T> &) {};
16 template<template<template<typename, unsigned> typename> typename> class TPLTPL {};
17 inline auto l_tpl_tpl_tpl = []<template<template<typename, unsigned> typename> typename T> (TPLTPL<T> &) {};
19 inline auto l_var = []<typename... Args> (Args...) {};
21 #if FIXME // we fail to parse (&...) correctly
22 inline auto l_var2 = []<int... I> (int (&...)[I]) {};
23 #endif
25 template<int...I> class X {};
26 inline auto l_var3 = []<template<int...> typename T, int...I> (T<I...> &a) {};
28 template<template<typename, unsigned> typename...T> class Y{};
29 inline auto l_var4 = []<template<typename, unsigned> typename... T> (Y<T...> &a) {};
31 template<int I> inline void Fn ()
33 auto l = []<typename T> (T) {};
34 l (1);
37 void f ()
39 l_auto (1);
40 l_tpl (1);
41 l_tpl_auto (1, 1);
42 int ary[2];
43 l_tpl_nt_ary (ary);
44 l_tpl_nt_auto ();
45 TPL<U> v;
46 l_tpl_tpl (v);
47 TPLTPL<TPL> u;
48 l_tpl_tpl_tpl (u);
49 l_var (1, 2, 3);
50 #if FIXME
51 l_var2 (ary, ary);
52 #endif
53 X<1,2,3> x;
54 l_var3 (x);
55 Y<U,U> y;
56 l_var4 (y);
58 Fn<1> ();
60 auto l1 = []<typename T, T v = T(0)> (T a) {
61 auto l2 = []<typename U> (T a, U b) {};
63 l2 (a, v);
65 auto l3 = []<typename T>(U<T, 0> *, U<int, 0> *) {};
67 l1 (1);
68 l1 ('1');
69 l3 ((U<char, 0> *)nullptr, nullptr);