111
|
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 }
|