1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// PR c++/67142 // { dg-do compile { target c++17 } } namespace detail { template <int> int split_at; } struct A { decltype(0) operator()(); }; template <typename> A make; struct Tuple; auto check = [](auto, auto, auto) { [](auto... xs) { [=] { make<Tuple>(xs...); }; }(); }; int main() { namespace vd = detail; check(vd::split_at<0>, make<Tuple>, make<Tuple>); }