От: | watchmaker | ||
Дата: | 20.03.18 14:17 | ||
Оценка: | 9 (1) +1 |
template <class T, size_t... I>
auto slice_tuple(const T& t, std::index_sequence<I...>) {
return std::tuple<typename std::tuple_element<I, T>::type...>((std::get<I>(t))...);
}
template <class THead, class... TTail>
auto tuple_pop_back(const std::tuple<THead, TTail...>& t) {
return slice_tuple(t, std::make_index_sequence<sizeof...(TTail)>());
}