21 namespace seqan3::detail
38 concept sequence_pair =
requires () {
41 requires std::ranges::forward_range<std::tuple_element_t<0, t>>;
42 requires std::ranges::forward_range<std::tuple_element_t<1, t>>;
61 concept sequence_pair_range = std::ranges::forward_range<t> && sequence_pair<std::ranges::range_value_t<t>>;
83 concept indexed_sequence_pair_range =
84 std::ranges::forward_range<t> &&
requires (std::ranges::range_value_t<t> value) {
87 requires sequence_pair<std::tuple_element_t<0, decltype(value)>>;
88 requires std::copy_constructible<std::tuple_element_t<1, decltype(value)>>;
106 template <
typename t>
107 concept align_pairwise_single_input =
108 sequence_pair<std::remove_reference_t<t>> && std::is_lvalue_reference_v<t>
109 || (std::ranges::viewable_range<std::tuple_element_t<0, std::remove_reference_t<t>>>
110 && std::ranges::viewable_range<std::tuple_element_t<1, std::remove_reference_t<t>>>);
131 template <
typename t>
132 concept align_pairwise_range_input =
133 std::ranges::forward_range<t> && sequence_pair<std::ranges::range_value_t<t>>
134 && ((std::ranges::viewable_range<t> && std::is_lvalue_reference_v<std::ranges::range_reference_t<t>>)
Core alphabet concept and free function/type trait wrappers.
requires requires
The rank_type of the semi-alphabet; defined as the return type of seqan3::to_rank....
Definition: alphabet/concept.hpp:164
The basis for seqan3::alphabet, but requires only rank interface (not char).
Whether a type behaves like a tuple.
The <ranges> header from C++20's standard library.
Provides seqan3::tuple_like.