2 // { dg-do compile { target c++11 } }
4 template <class...Ts> struct tuple{};
8 template <class T, class...argTs>
9 T operator()(T arg1, argTs...)
15 template <class...>class test;
17 template < template <class...> class tp,
20 class test<tp<arg1Ts...>, tp<arg2Ts...>>
24 auto test_pass(func fun, arg2Ts...arg2s)
25 -> decltype(fun(arg2s...))
30 template <class func, class...arg3Ts>
31 auto testbug(func fun, arg2Ts...arg2s, arg3Ts...arg3s)
32 -> decltype(fun(arg2s..., arg3s...))
34 return fun(arg2s..., arg3s...);
40 test<tuple<>, tuple<char, int>> t;
41 t.test_pass (funct(), 'a', 2);
42 t.testbug (funct(), 'a', 2, "fine");
43 t.testbug (funct(), 'a', 2);