39 template <
typename ...>
typename tuple_t,
47 return tuple_t<std::tuple_element_t<beg + Is, tuple_t<ts...>>...>{std::get<beg + Is>(t)...};
52 template <
typename ...>
typename tuple_t,
60 return tuple_t<std::tuple_element_t<beg + Is, tuple_t<ts...>>...>{
std::move(std::get<beg + Is>(t))...};
98 template <
size_t pivot_c,
template <
typename ...>
typename tuple_t,
typename ...ts>
104 static_assert(pivot_c <=
sizeof...(ts));
111 template <
size_t pivot_c,
template <
typename ...>
typename tuple_t,
typename ...ts>
117 static_assert(pivot_c <=
sizeof...(ts));
149 template <
typename pivot_t, tuple_like tuple_t>
152 constexpr
size_t pivot_c = list_traits::find<pivot_t, detail::tuple_type_list_t<std::remove_cvref_t<tuple_t>>>;
156 return tuple_split<pivot_c>(std::forward<tuple_t>(t));
179 template <tuple_like tuple_t>
184 return std::get<1>(tuple_split<1>(std::forward<tuple_t>(t)));
constexpr auto tuple_pop_front(tuple_t &&t)
Removes the first element of a tuple.
Definition: tuple_utility.hpp:180
constexpr auto tuple_split(tuple_t< ts... > const &t)
Splits a tuple like data structure at the given position.
Definition: tuple_utility.hpp:102
constexpr auto tuple_split(tuple_t< ts... > const &t, std::index_sequence< Is... > const &idx)
Helper function for seqan3::tuple_split.
Definition: tuple_utility.hpp:45
auto const move
A view that turns lvalue-references into rvalue-references.
Definition: move.hpp:70
Whether a type behaves like a tuple.
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Provides seqan3::tuple_like.
Provides seqan3::pod_tuple.
Provides traits for seqan3::type_list.