summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp0x/variadic64.C
blob: c9212e2e9599254d2fd9a3c0d8964362443a88ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// { dg-options "-std=gnu++0x" }
template<int... Indexes>
  struct _Index_tuple { };

template<int _Num, typename _Tuple = _Index_tuple<> >
struct _Build_index_tuple;

template<int _Num, int... _Indexes> 
struct _Build_index_tuple<_Num, _Index_tuple<_Indexes...> >
  : _Build_index_tuple<_Num - 1, 
                       _Index_tuple<_Indexes..., sizeof...(_Indexes)> >
{
};

template<int... _Indexes>
struct _Build_index_tuple<0, _Index_tuple<_Indexes...> >
{
  typedef _Index_tuple<_Indexes...> __type;
};