| 155 | // [start, end) |
| 156 | template <std::size_t start, std::size_t end, class Tuple> |
| 157 | constexpr decltype(auto) subtuple(Tuple &&t) |
| 158 | { |
| 159 | constexpr auto tupleSize = std::tuple_size_v<std::remove_reference_t<Tuple>>; |
| 160 | static_assert(start <= end); |
| 161 | static_assert(end <= tupleSize); |
| 162 | return detail::subtupleImpl<start>(std::forward<Tuple>(t), |
| 163 | std::make_index_sequence<end - start>{}); |
| 164 | } |
| 165 | |
| 166 | template <std::size_t start, class Tuple> |
| 167 | constexpr decltype(auto) drop(Tuple &&t) |