SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::detail::repeat_view< value_t >::basic_iterator< parent_type > Class Template Reference

The forward declared iterator type for views::repeat (a random access iterator). More...

#include <seqan3/utility/views/repeat.hpp>

+ Inheritance diagram for seqan3::detail::repeat_view< value_t >::basic_iterator< parent_type >:

Public Member Functions

Constructors, destructor and assignment
 basic_iterator ()=default
 Defaulted.
 
 basic_iterator (basic_iterator const &)=default
 Defaulted.
 
basic_iteratoroperator= (basic_iterator const &)=default
 Defaulted.
 
 basic_iterator (basic_iterator &&)=default
 Defaulted.
 
basic_iteratoroperator= (basic_iterator &&)=default
 Defaulted.
 
 ~basic_iterator ()=default
 Defaulted.
 
constexpr basic_iterator (parent_type &host) noexcept
 Construct by host range.
 
template<typename parent_type2 >
requires std::is_const_v<parent_type> && (!std::is_const_v<parent_type2>) && std::is_same_v<std::remove_const_t<parent_type>, parent_type2>
constexpr basic_iterator (basic_iterator< parent_type2 > const &rhs) noexcept
 Constructor for const version from non-const version.
 
- Public Member Functions inherited from seqan3::detail::random_access_iterator_base< parent_type, basic_iterator >
constexpr random_access_iterator_base ()=default
 Default constructor.
 
constexpr random_access_iterator_base (random_access_iterator_base const &)=default
 Copy constructor.
 
constexpr random_access_iterator_base (random_access_iterator_base &&)=default
 Move constructor.
 
constexpr random_access_iterator_base (parent_type &host) noexcept
 Construct by host, default position pointer with 0.
 
constexpr random_access_iterator_base (parent_type &host, position_type const pos) noexcept
 Construct by host and explicit position.
 
constexpr random_access_iterator_base (random_access_iterator_base< range_type2, basic_iterator > const &rhs) noexcept
 Constructor for const version from non-const version.
 
constexpr random_access_iterator_baseoperator= (random_access_iterator_base const &)=default
 Copy construction via assignment.
 
constexpr random_access_iterator_baseoperator= (random_access_iterator_base &&)=default
 Move assignment.
 
 ~random_access_iterator_base ()=default
 Use default deconstructor.
 
constexpr bool operator== (random_access_iterator_base< range_type2, basic_iterator > const &rhs) const noexcept
 Checks whether *this is equal to rhs.
 
constexpr bool operator!= (random_access_iterator_base< range_type2, basic_iterator > const &rhs) const noexcept
 Checks whether *this is not equal to rhs.
 
constexpr bool operator< (random_access_iterator_base< range_type2, basic_iterator > const &rhs) const noexcept
 Checks whether *this is less than rhs.
 
constexpr bool operator> (random_access_iterator_base< range_type2, basic_iterator > const &rhs) const noexcept
 Checks whether *this is greater than rhs.
 
constexpr bool operator<= (random_access_iterator_base< range_type2, basic_iterator > const &rhs) const noexcept
 Checks whether *this is less than or equal to rhs.
 
constexpr bool operator>= (random_access_iterator_base< range_type2, basic_iterator > const &rhs) const noexcept
 Checks whether *this is greater than or equal to rhs.
 
constexpr reference operator* () const noexcept(noexcept((*host)[pos]))
 Dereference operator returns element currently pointed at.
 
constexpr pointer operator-> () const noexcept(noexcept((&host)[pos]))
 Return pointer to this iterator.
 
constexpr reference operator[] (position_type const n) const noexcept(noexcept((*host)[pos+n]))
 Return underlying container value currently pointed at.
 
constexpr derived_toperator++ () noexcept
 Pre-increment, return updated iterator.
 
constexpr derived_t operator++ (int) noexcept
 Post-increment, return previous iterator state.
 
constexpr derived_toperator-- () noexcept
 Pre-decrement, return updated iterator.
 
constexpr derived_t operator-- (int) noexcept
 Post-decrement, return previous iterator state.
 
constexpr derived_toperator+= (difference_type const skip) noexcept
 Forward this iterator.
 
constexpr derived_t operator+ (difference_type const skip) const noexcept
 Forward copy of this iterator.
 
constexpr derived_toperator-= (difference_type const skip) noexcept
 Decrement iterator by skip.
 
constexpr derived_t operator- (difference_type const skip) const noexcept
 Return decremented copy of this iterator.
 

Private Types

using base_t = detail::random_access_iterator_base< parent_type, basic_iterator >
 The CRTP base type.
 

Comparison operators

constexpr bool operator== (basic_iterator const &rhs) const noexcept
 Equality comparison to the sentinel always returns false on an infinite view.
 
constexpr bool operator!= (basic_iterator const &rhs) const noexcept
 Equality comparison to the sentinel always returns false on an infinite view.
 
constexpr bool operator== (std::default_sentinel_t const &) const noexcept
 Equality comparison to the sentinel always returns false on an infinite view.
 
constexpr bool operator!= (std::default_sentinel_t const &) const noexcept
 Inequality comparison to the sentinel always returns true on an infinite view.
 
constexpr bool operator== (std::default_sentinel_t const &, basic_iterator const &) noexcept
 Equality comparison to the sentinel always returns false on an infinite view.
 
constexpr bool operator!= (std::default_sentinel_t const &, basic_iterator const &) noexcept
 Inequality comparison to the sentinel always returns true on an infinite view.
 

Additional Inherited Members

- Public Types inherited from seqan3::detail::random_access_iterator_base< parent_type, basic_iterator >
using const_reference = typename range_type::const_reference
 Use const reference type provided by container.
 
using difference_type = typename range_type::difference_type
 Type for distances between iterators.
 
using iterator_category = std::random_access_iterator_tag
 Tag this class as a random access iterator.
 
using pointer = value_type *
 Pointer type is pointer of container element type.
 
using reference = std::conditional_t< std::is_const_v< parent_type >, typename range_type::const_reference, typename range_type::reference >
 Use reference type defined by container.
 
using value_type = typename range_type::value_type
 Value type of container elements.
 
- Protected Types inherited from seqan3::detail::random_access_iterator_base< parent_type, basic_iterator >
using derived_t = basic_iterator< parent_type >
 Because this is CRTP, we know the full derived type:
 
using position_type = std::make_unsigned_t< typename range_type::difference_type >
 Use container's size_type as a position.
 
- Protected Attributes inherited from seqan3::detail::random_access_iterator_base< parent_type, basic_iterator >
std::add_pointer_t< parent_type > host
 Iterator stores pointer to underlying container structure.
 
position_type pos
 Store position index for container.
 

Detailed Description

template<std::copy_constructible value_t>
template<typename parent_type>
class seqan3::detail::repeat_view< value_t >::basic_iterator< parent_type >

The forward declared iterator type for views::repeat (a random access iterator).

The iterator type for views::repeat (a random access iterator).

Constructor & Destructor Documentation

◆ basic_iterator() [1/2]

template<std::copy_constructible value_t>
template<typename parent_type >
constexpr seqan3::detail::repeat_view< value_t >::basic_iterator< parent_type >::basic_iterator ( parent_type &  host)
inlineexplicitconstexprnoexcept

Construct by host range.

Parameters
hostThe host range.

◆ basic_iterator() [2/2]

template<std::copy_constructible value_t>
template<typename parent_type >
template<typename parent_type2 >
requires std::is_const_v<parent_type> && (!std::is_const_v<parent_type2>) && std::is_same_v<std::remove_const_t<parent_type>, parent_type2>
constexpr seqan3::detail::repeat_view< value_t >::basic_iterator< parent_type >::basic_iterator ( basic_iterator< parent_type2 > const &  rhs)
inlineconstexprnoexcept

Constructor for const version from non-const version.

Parameters
rhsa non-const version of basic_iterator to construct from.

The documentation for this class was generated from the following file:
Hide me