1 // Various tests for variadic templates and partial specialization.
2 // { dg-do compile { target c++11 } }
5 template<typename A, typename B>
8 template<typename... T>
11 template<typename... AS, typename... BS>
12 struct pairs<pair<AS, BS>...> {
13 struct mismatched_packs {};
21 template<int A, int B>
24 template<typename... T>
27 template<int... AS, int... BS>
28 struct points<point<AS, BS>...> {
29 struct mismatched_packs {};
32 template class points<
38 template <class...ARGS> struct tuple {};
39 template <class A, class B> struct test {};
40 template <class... ARGS, class B> struct test<B, tuple<ARGS...>>
42 template <class T> struct inside {};
46 template<typename...> struct A;
48 template<typename, typename> struct B;
50 template<typename... T, typename... U> struct B<A<T...>, A<U...> >
60 template <typename...> struct p;
62 template <typename, typename> struct d;
64 template <typename... A, typename... B>
65 struct d<p<A...>, p<B...> > { typedef int t; };
67 typedef d<p<>, p<int, float> >::t q;
68 typedef d<q, d<p<int>, p<float> >::t> r; // *
70 typedef d<d<p<>, p<int, float> >::t, d<p<>, p<> >::t> s;