1 // PR c++/53305 2 // { dg-do compile { target c++11 } } 3 4 template<class... Ts> struct tuple { }; 5 6 struct funct 7 { 8 template<class... argTs> 9 int operator()(argTs...); 10 }; 11 12 template<class...> struct test; 13 14 template<template <class...> class tp, 15 class... arg1Ts, class... arg2Ts> 16 struct test<tp<arg1Ts...>, tp<arg2Ts...>> 17 { 18 template<class func, class...arg3Ts> 19 auto test2(func fun, arg1Ts... arg1s, arg3Ts... arg3s) 20 -> decltype(fun(arg1s..., arg3s...)); 21 }; 22 23 int main() 24 { 25 test<tuple<>, tuple<char,int>> t2; 26 t2.test2(funct(), 'a', 2); 27 } 28