#include <iostream> #include <tuple> template <typename Tuple, size_t BEGIN, typename IndexSequence> struct sub_tuple_impl { }; template <typename Tuple, size_t BEGIN, size_t ...Indice> struct sub_tuple_impl<Tuple, BEGIN, std::index_sequence<Indice...>> { using type = std::tuple<std::tuple_element_t<BEGIN + Indice, Tuple>...>; }; template <typename Tuple, size_t BEGIN, size_t END> struct sub_tuple { using type = typename sub_tuple_impl<Tuple, BEGIN, std::make_index_sequence<END - BEGIN>>::type; }; template <typename Tuple, size_t BEGIN, size_t END> using sub_tuple_t = typename sub_tuple<Tuple, BEGIN, END>::type; sub_tuple_t<std::tuple<int, float, double, char const*, double const*, double, float>, 2, 4> t; int main(int argc, char argv[]) { auto& must_double = std::get<0>(t); must_double = 2.2; auto& must_char_const_p = std::get<1>(t); must_char_const_p = "hello, world!"; std::cout << std::get<1>(t) << '\n' << std::get<0>(t) << std::endl; return 0; }


std::index_sequence 쓸 때 sub_tulple_impl에서 템플릿 특수화 한번 거치고 사용했는데 저거 없이 바로 Indice 받는 방법 없어?