90template <
typename iter_t>
91concept two_dimensional_matrix_iterator =
92 std::random_access_iterator<iter_t>
103 { cit.coordinate() };
105 { it +=
offset } -> std::same_as<std::remove_reference_t<iter_t> &>;
106 { it +
offset } -> std::same_as<std::remove_reference_t<iter_t>>;
107 {
offset + it } -> std::same_as<std::remove_reference_t<iter_t>>;
108 { it -=
offset } -> std::same_as<std::remove_reference_t<iter_t> &>;
109 { it -
offset } -> std::same_as<std::remove_reference_t<iter_t>>;
110 { cit -
offset } -> std::same_as<std::remove_reference_t<iter_t>>;
111 { it.coordinate() } -> std::same_as<matrix_coordinate>;
112 { cit.coordinate() } -> std::same_as<matrix_coordinate>;
117#if SEQAN3_DOXYGEN_ONLY(1) 0
118template <
typename iter_t>
A concept for iterators over a two dimensional matrix, e.g. seqan3::detail::two_dimensional_matrix.
Definition two_dimensional_matrix_iterator_concept.hpp:120
matrix_index< std::ptrdiff_t > matrix_offset
An offset type to move a matrix iterator in two-dimensional space.
Definition matrix_coordinate.hpp:186
@ offset
Sequence (seqan3::field::seq) relative start position (0-based), unsigned value.
Provides seqan3::detail::matrix_index, seqan3::detail::matrix_coordinate and associated strong types.
The internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26