15 using int_t = std::integral_constant<int, I>;
19 constexpr int_t<I> int_ = {};
23 using Ints = std::integer_sequence<
int, I...>;
25 template <std::size_t I,
int... J>
26 auto get(Ints<J...>) {
return std::get<I>(std::make_tuple(int_<J>...)); }
30 template <std::
size_t I>
31 using index_t = std::integral_constant<std::size_t, I>;
34 template <std::
size_t I>
35 constexpr index_t<I> index_ = {};
39 template <std::size_t... I>
40 using Indices = std::index_sequence<I...>;
42 template <std::size_t I, std::size_t... J>
43 auto get(Indices<J...>) {
return std::get<I>(std::make_tuple(index_<J>...)); }