std::ranges::repeat_view<W, Bound>::iterator

From cppreference.com
< cpp‎ | ranges‎ | repeat view
Ranges library
Range adaptors
struct /*iterator*/;
(exposition only*)

ranges::repeat_view<W, Bound>:: iterator is the type of the iterators returned by begin() and end() of ranges::repeat_view<W, Bound>

Nested types

Exposition-only types
Type Definition
index-type std::conditional_t < std::same_as <Bound, std::unreachable_sentinel_t >
std::ptrdiff_t, Bound>
(exposition-only member type*
Iterator property types
Type Definition
iterator_concept std::random_access_iterator_tag
iterator_category std::random_access_iterator_tag
value_type W
difference_type std::conditional_t< is-signed-integer-like < index-type >,
index-type , iota-diff-t < index-type >>

Data members

Member Definition
const W* value_ a pointer to the value to repeat
(exposition-only member object*
index-type current_ the current position
(exposition-only member object*

Member functions

std::ranges::repeat_view::iterator::iterator

/*iterator*/() = default;
(1) (since C++23)
constexpr explicit /*iterator*/
( const W* value, /*index-type*/ b = /*index-type*/ ( ) ) ;
(2) (since C++23)
(exposition only*)

Constructs an iterator. Overload (2) is called by begin() and end() of ranges::repeat_view

1) Initializes value_ with nullptr and value-initializes current_
2) Initializes value_ with value and current_ with b
If Bound is not std::unreachable_sentinel_t and b

std::ranges::repeat_view::iterator::operator*

constexpr const W& operator* ( ) const noexcept ;
(since C++23)

Returns *value_.

std::ranges::repeat_view::iterator::operator[]

constexpr const W& operator[ ] ( difference_type n ) const noexcept ;
(since C++23)

Returns *(*this + n).

std::ranges::repeat_view::iterator::operator++

constexpr /*iterator*/ & operator++ ( ) ;
(1) (since C++23)
constexpr void operator++ ( int ) ;
(2) (since C++23)
1) Equivalent to ++ current_ ; return *this;
2) Equivalent to auto tmp = *this; ++*this; return tmp;

std::ranges::repeat_view::iterator::operator--

constexpr /*iterator*/ & operator-- ( ) ;
(1) (since C++23)
constexpr /*iterator*/ operator-- ( int ) ;
(2) (since C++23)
1) Equivalent to -- current_ ; return *this;
2) Equivalent to auto tmp = *this; --*this; return tmp;

std::ranges::repeat_view::iterator::operator+=

constexpr /*iterator*/ & operator+ = ( difference_type n ) ;
(since C++23)

Equivalent to current_ += n; return *this;

If Bound is not std::unreachable_sentinel_t and current_+ n

std::ranges::repeat_view::iterator::operator-=

constexpr /*iterator*/ & operator- = ( difference_type n ) ;
(since C++23)

Equivalent to current_ -= n; return *this;

If Bound is not std::unreachable_sentinel_t and current_- n

Non-member functions

operator==, <=>(std::ranges::repeat_view::iterator)

friend constexpr bool operator==
( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(1) (since C++23)
friend constexpr auto operator<=>
( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(2) (since C++23)
1) Returns x. current_ == y. current_
2) Returns x. current_ <=> y. current_

The != operator is synthesized from operator==.

These functions are not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when iterator

operator+(std::ranges::repeat_view::iterator)

friend constexpr /*iterator*/ operator+
( /*iterator*/ i, difference_type n ) ;
(1) (since C++23)
friend constexpr /*iterator*/ operator+
( difference_type n, /*iterator*/ i ) ;
(2) (since C++23)

Equivalent to i += n; return i;.

These functions are not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when iterator

operator-(std::ranges::repeat_view::iterator)

friend constexpr /*iterator*/ operator-
( /*iterator*/ i, difference_type n ) ;
(1) (since C++23)
friend constexpr difference_type operator-
( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(2) (since C++23)
1) Equivalent to i -= n; return i;
2) Returns static_cast< difference_type >(x. current_ ) -
static_cast< difference_type >(y. current_ )

These functions are not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when iterator

Notes

iterator is always random_access_iterator.