Open GuillaumeDua opened 7 months ago
// take_n / take_front_n / subpack / shorten template <std::size_t, typename> class take_n; template <std::size_t N, template <typename ...> typename pack, typename ... Ts> class take_n<N, pack<Ts...>>{ static_assert(N <= sizeof...(Ts)); template <std::size_t ... indexes> constexpr static auto impl(std::index_sequence<indexes...>) -> pack<std::tuple_element_t<indexes, std::tuple<Ts...>>...>; public: using type = decltype(impl(std::make_index_sequence<N>{})); }; template <std::size_t N, typename T> using take_n_t = take_n<N, T>::type;