| 173 | |
| 174 | template <std::size_t len, class Tuple> |
| 175 | constexpr decltype(auto) take(Tuple &&t) |
| 176 | { |
| 177 | constexpr auto tupleSize = std::tuple_size_v<std::remove_reference_t<Tuple>>; |
| 178 | static_assert(len <= tupleSize); |
| 179 | return subtuple<0, len>(std::forward<Tuple>(t)); |
| 180 | } |
| 181 | |
| 182 | template <class F, class Tuple> |
| 183 | constexpr decltype(auto) apply_(F &&f, Tuple &&t) |