61template <
typename derived_t>
83 static_assert(std::ranges::random_access_range<view_type>,
"Column view must support random access.");
84 static_assert(std::ranges::sized_range<view_type>,
"Column view must be a sized range.");
85 static_assert(std::ranges::view<view_type>,
"Column view must be a view.");
88 using sentinel = std::ranges::sentinel_t<view_type>;
145 "The returned type of make_proxy must be convertible to the reference type.");
199 return !(*
this == rhs);
211 return !(*
this == rhs);
252 assert(
me_ptr !=
nullptr);
257 constexpr auto begin() const noexcept = delete;
270 constexpr
size_t size() const noexcept
336 "The returned type of initialise_column must be convertible to the reference type.");
362 constexpr bool operator==(std::default_sentinel_t
const &)
const noexcept
374 constexpr bool operator!=(std::default_sentinel_t
const & rhs)
const noexcept
376 return !(*
this == rhs);
456 template <typename iter_t>
464 template <
typename iter_t>
472 template <
typename iter_t>
499 return std::default_sentinel;
Provides various type traits on generic types.
The iterator over an alignment-column.
Definition: alignment_matrix_column_major_range_base.hpp:100
constexpr reference operator*() const noexcept
Returns a proxy for the current alignment cell.
Definition: alignment_matrix_column_major_range_base.hpp:142
~iterator_type()=default
Defaulted.
constexpr bool operator==(sentinel const &rhs) const noexcept
Returns true if the host iterator reached the end, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:179
typename deferred_type< typename derived_t::value_type >::type value_type
A value type dependent on the derived type.
Definition: alignment_matrix_column_major_range_base.hpp:106
constexpr iterator_type & operator++() noexcept
Advances the iterator by one.
Definition: alignment_matrix_column_major_range_base.hpp:155
std::ranges::iterator_t< view_type > host_iter
Wrapped iterator over aliased matrix column.
Definition: alignment_matrix_column_major_range_base.hpp:219
constexpr iterator_type(iterator_type const &)=default
Defaulted.
friend constexpr bool operator==(sentinel const &lhs, iterator_type const &rhs) noexcept
Returns true if the host iterator reached the end, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:185
constexpr iterator_type & operator=(iterator_type &&)=default
Defaulted.
constexpr iterator_type & operator=(iterator_type const &)=default
Defaulted.
constexpr iterator_type(iterator_type &&)=default
Defaulted.
constexpr iterator_type()=default
Defaulted.
friend constexpr bool operator!=(sentinel const &lhs, iterator_type const &rhs) noexcept
Returns true if the host iterator did not reach the end, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:203
constexpr iterator_type(alignment_column_type &host)
Construction from the underlying alignment-column.
Definition: alignment_matrix_column_major_range_base.hpp:130
alignment_column_type * host_ptr
Pointer to the underlying alignment-column.
Definition: alignment_matrix_column_major_range_base.hpp:217
constexpr iterator_type operator++(int) noexcept
Advances the iterator and returns previous iterator.
Definition: alignment_matrix_column_major_range_base.hpp:167
constexpr bool operator!=(sentinel const &rhs) const noexcept
Returns true if the host iterator did not reach the end, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:197
typename deferred_type< typename derived_t::reference >::type reference
The reference type dependent on the derived type.
Definition: alignment_matrix_column_major_range_base.hpp:108
std::ranges::range_difference_t< view_type > difference_type
Difference type.
Definition: alignment_matrix_column_major_range_base.hpp:112
void pointer
Pointer type.
Definition: alignment_matrix_column_major_range_base.hpp:110
constexpr bool operator==(iterator_type const &rhs) const noexcept
Returns true if both iterators are equal, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:191
constexpr bool operator!=(iterator_type const &rhs) const noexcept
Returns true if both iterators are not equal, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:209
Represents a column within an alignment matrix.
Definition: alignment_matrix_column_major_range_base.hpp:78
view_type ref
The aliased alignment-column.
Definition: alignment_matrix_column_major_range_base.hpp:277
constexpr size_t size() const noexcept
Returns the size the alignment column.
Definition: alignment_matrix_column_major_range_base.hpp:270
constexpr alignment_column_type & operator=(alignment_column_type const &)=default
Defaulted.
constexpr alignment_column_type()=default
Defaulted.
constexpr alignment_column_type(alignment_column_type &&)=default
Defaulted.
derived_t * me_ptr
Pointer to the derived type.
Definition: alignment_matrix_column_major_range_base.hpp:279
typename deferred_type< typename derived_t::column_data_view_type >::type view_type
A view aliasing the actual stored data column within the underlying matrix.
Definition: alignment_matrix_column_major_range_base.hpp:81
constexpr sentinel end() noexcept
Returns an iterator to the end of the column.
Definition: alignment_matrix_column_major_range_base.hpp:260
constexpr sentinel end() const noexcept=delete
Deleted end for const-qualified alignment-columns.
constexpr auto begin() const noexcept=delete
Deleted begin for const-qualified alignment-columns.
std::ranges::sentinel_t< view_type > sentinel
The sentinel type of the underlying view.
Definition: alignment_matrix_column_major_range_base.hpp:88
constexpr alignment_column_type & operator=(alignment_column_type &&)=default
Defaulted.
~alignment_column_type()=default
Defaulted.
constexpr alignment_column_type(alignment_column_type const &)=default
Defaulted.
constexpr iterator_type begin() noexcept
Returns an iterator to the begin of the column.
Definition: alignment_matrix_column_major_range_base.hpp:250
constexpr alignment_column_type(derived_t &me, view_type ref)
Constructs from the derived type.
Definition: alignment_matrix_column_major_range_base.hpp:241
A column iterator over the alignment matrix.
Definition: alignment_matrix_column_major_range_base.hpp:295
constexpr iterator_type & operator=(iterator_type const &)=default
Defaulted.
constexpr void operator++(int) noexcept
Increments by one.
Definition: alignment_matrix_column_major_range_base.hpp:352
alignment_column_type value_type
The alignment-column type.
Definition: alignment_matrix_column_major_range_base.hpp:301
friend constexpr bool operator!=(std::default_sentinel_t const &lhs, iterator_type const &rhs) noexcept
Returns true if the host iterator did not reach the end, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:380
constexpr iterator_type(iterator_type const &)=default
Defaulted.
constexpr bool operator!=(std::default_sentinel_t const &rhs) const noexcept
Returns true if the behind-the-end column was not reached, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:374
friend constexpr bool operator==(std::default_sentinel_t const &lhs, iterator_type const &rhs) noexcept
Returns true if the host iterator reached the end, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:368
std::ranges::range_difference_t< alignment_column_type > difference_type
Difference type.
Definition: alignment_matrix_column_major_range_base.hpp:307
constexpr bool operator==(std::default_sentinel_t const &) const noexcept
Returns true if the behind-the-end column was reached, false otherwise.
Definition: alignment_matrix_column_major_range_base.hpp:362
size_t column_index
The current column index.
Definition: alignment_matrix_column_major_range_base.hpp:390
void pointer
Pointer type.
Definition: alignment_matrix_column_major_range_base.hpp:305
derived_t * me_ptr
Pointer to the derived type.
Definition: alignment_matrix_column_major_range_base.hpp:388
constexpr iterator_type()=default
Defaulted.
constexpr iterator_type & operator=(iterator_type &&)=default
Defaulted.
constexpr reference operator*() const noexcept
Returns the current alignment-column.
Definition: alignment_matrix_column_major_range_base.hpp:333
constexpr iterator_type(derived_t &me)
Construction from an instance of the derived type.
Definition: alignment_matrix_column_major_range_base.hpp:325
constexpr iterator_type & operator++() noexcept
Increments by one.
Definition: alignment_matrix_column_major_range_base.hpp:345
~iterator_type()=default
Defaulted.
constexpr iterator_type(iterator_type &&)=default
Defaulted.
Provides a range interface for alignment matrices.
Definition: alignment_matrix_column_major_range_base.hpp:63
typedef column_data_view_type
The view over the current alignment-column; must model std::ranges::view and std::ranges::input_range...
Definition: alignment_matrix_column_major_range_base.hpp:424
std::default_sentinel_t sentinel
The type of sentinel.
Definition: alignment_matrix_column_major_range_base.hpp:480
friend derived_t
Befriend the derived type.
Definition: alignment_matrix_column_major_range_base.hpp:66
constexpr alignment_matrix_column_major_range_base & operator=(alignment_matrix_column_major_range_base const &)=default
Defaulted.
constexpr void on_column_iterator_creation(iter_t host_iter) noexcept
Allows additional initialisations when calling begin on an alignment-column.
Definition: alignment_matrix_column_major_range_base.hpp:457
constexpr alignment_matrix_column_major_range_base()=default
Defaulted.
alignment_column_type initialise_column(size_t column_index)
Returns the current alignment-column at the given column_index.
Definition: alignment_matrix_column_major_range_base.hpp:450
constexpr iterator begin() const noexcept=delete
Deleted begin for const-qualified alignment matrix.
constexpr void after_column_iterator_increment(iter_t host_iter) noexcept
Allows to perform additional steps after incrementing the alignment-column-iterator.
Definition: alignment_matrix_column_major_range_base.hpp:473
constexpr iterator begin() noexcept
Returns an iterator to the first column of the matrix.
Definition: alignment_matrix_column_major_range_base.hpp:488
constexpr sentinel end() noexcept
Returns a sentinel marking the end of the matrix.
Definition: alignment_matrix_column_major_range_base.hpp:497
constexpr sentinel end() const noexcept=delete
Deleted end for const-qualified alignment matrix.
constexpr void before_column_iterator_increment(iter_t host_iter) noexcept
Allows to perform additional steps before incrementing the alignment-column-iterator.
Definition: alignment_matrix_column_major_range_base.hpp:465
constexpr alignment_matrix_column_major_range_base & operator=(alignment_matrix_column_major_range_base &&)=default
Defaulted.
constexpr alignment_matrix_column_major_range_base(alignment_matrix_column_major_range_base const &)=default
Defaulted.
typedef value_type
The proxy type of an alignment matrix.
Definition: alignment_matrix_column_major_range_base.hpp:419
constexpr alignment_matrix_column_major_range_base(alignment_matrix_column_major_range_base &&)=default
Defaulted.
value_type make_proxy(iter_t host_iter) noexcept
Creates the proxy value returned when dereferencing the alignment-column-iterator.
Definition: alignment_matrix_column_major_range_base.hpp:436
~alignment_matrix_column_major_range_base()=default
Defaulted.
Provides various transformation traits used by the range module.
constexpr size_t size
The size of a type pack.
Definition: traits.hpp:146
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
SeqAn specific customisations in the standard namespace.
Return the type identity; further arguments are ignored, but can make this type dependent if they are...
Definition: basic.hpp:105
t type
The type identity.
Definition: basic.hpp:107