1// PR c++/68585
2// { dg-do compile { target c++11 } }
3
4template<typename T, unsigned N>
5  struct array
6  {
7    T _M_data[N];
8  };
9
10template<typename _Tp, _Tp... _Idx>
11  struct integer_sequence
12  {
13  };
14
15struct Pos
16{
17  unsigned l;
18};
19
20template<class T, T... Ints>
21constexpr array<Pos, sizeof...(Ints)> make_grid_position(integer_sequence<T, Ints...>)
22{
23  return {{ Pos{Ints}... }};
24}
25
26constexpr array<Pos, 1> make_grid_positions()
27{
28  return make_grid_position(integer_sequence<unsigned, 0>{});
29}
30
31template<class T>
32void generate_sudoku(T)
33{
34  constexpr auto positions = make_grid_positions(); // fail
35}
36
37int main()
38{
39  constexpr auto positions = make_grid_positions(); // ok
40  generate_sudoku(1);
41}
42