Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/cpp1y/lambda-generic-83856.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/cpp1y/lambda-generic-83856.C Thu Feb 13 11:34:05 2020 +0900 @@ -0,0 +1,30 @@ +// PR c++/83856 +// { dg-do compile { target c++14 } } + +namespace std { +template <typename _Tp> _Tp declval(); +template <class _E> class initializer_list { + _E *_M_len; + +public: + __SIZE_TYPE__ size; + _E begin(); +}; +template <typename, unsigned> struct array { void operator[](long); }; +} // namespace std + +template <class> struct simd { + static int size(); + template <class F> simd(F, decltype(std::declval<F>()(0)) * = nullptr) {} +}; +template <class V, class... F> +void test_tuples(std::initializer_list<std::array<float, 1>> data, + F... fun_pack) { + auto it = data.begin(); + const int remaining = V::size(); + [](...) {}((fun_pack([&](auto) { it[remaining]; }), 0)...); +} + +void f() { + test_tuples<simd<float>>({}, [](simd<float>) {}); +}