1 // PR c++/65790
2 // { dg-do compile { target c++11 } }
3 
4 extern "C" int printf(const char* ...);
5 
6 namespace std
7 {
8   typedef decltype(sizeof(0)) size_t;
9 
10   template<typename _Tp, _Tp... _Idx>
11     struct integer_sequence
12     {
13       typedef _Tp value_type;
sizeinteger_sequence14       static constexpr size_t size() { return sizeof...(_Idx); }
15     };
16 
17   template<size_t... _Idx>
18     using index_sequence = integer_sequence<size_t, _Idx...>;
19 }
20 
g(std::size_t a,std::size_t b,std::size_t c)21 void g(std::size_t a, std::size_t b, std::size_t c)
22 {
23   printf("%zu, %zu, %zu\n", a, b, c);
24 }
25 
26 template <std::size_t... Seq>
f(std::index_sequence<Seq...>)27 void f(std::index_sequence<Seq...>)
28 {
29   g(Seq...);
30 }
31 
main()32 int main()
33 {
34   f(std::index_sequence<0, 1, 2>());
35 }
36