Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
struct /*iterator*/ ;
( только для демонстрации* )

ranges:: repeat_view < W, Bound > :: iterator — это тип итераторов, возвращаемых методами begin() и end() для ranges:: repeat_view < W, Bound > .

Содержание

Вложенные типы

Типы только для экспозиции
Тип Определение
index-type std:: conditional_t < std:: same_as < Bound, std:: unreachable_sentinel_t > ,
std:: ptrdiff_t , Bound >
( тип-член только для экспозиции* )
Типы свойств итератора
Тип Определение
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  >>

Члены данных

Участник Определение
const W * value_ указатель на повторяемое значение
( объект-член только для демонстрации* )
index-type current_ текущая позиция
( объект-член только для демонстрации* )

Функции-члены

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)
( только для демонстрации* )

Конструирует итератор. Перегрузка (2) вызывается методами begin() и end() представления ranges::repeat_view .

1) Инициализирует value_ значением nullptr и инициализирует значением по умолчанию current_ .
2) Инициализирует value_ значением value и current_ значением b .
Если Bound не является std::unreachable_sentinel_t и b отрицательно, поведение не определено.

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

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

Возвращает * value_ .

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

constexpr const W & operator [ ] ( difference_type n ) const noexcept ;
(начиная с C++23)

Возвращает * ( * this + n ) .

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

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (since C++23)
constexpr void operator ++ ( int ) ;
(2) (since C++23)
1) Эквивалентно ++ current_  ; return * this ; .
2) Эквивалентно 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) Эквивалентно -- current_  ; return * this ; .
Если Bound не является std::unreachable_sentinel_t и current_ неположителен, поведение не определено.
2) Эквивалентно auto tmp = * this ; --* this ; return tmp ; .

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

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

Эквивалентно current_ + = n ; return * this ; .

Если Bound не является std::unreachable_sentinel_t и current_ + n отрицательно, поведение не определено.

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

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

Эквивалентно current_ - = n ; return * this ; .

Если Bound не является std::unreachable_sentinel_t и current_ - n отрицательно, поведение не определено.

Функции, не являющиеся членами класса

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) Возвращает x. current_ == y. current_ .
2) Возвращает x. current_ <=> y. current_ .

Оператор != синтезируется из operator== .

Эти функции не видны при обычном неквалифицированном или квалифицированном поиске и могут быть найдены только с помощью поиска, зависимого от аргументов , когда 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)

Эквивалентно i + = n ; return i ; .

Эти функции не видны при обычном неквалифицированном поиске или квалифицированном поиске и могут быть найдены только с помощью поиска, зависимого от аргументов , когда 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) Эквивалентно i - = n ; return i ; .
2) Возвращает static_cast < difference_type > ( x. current_  ) -
static_cast < difference_type > ( y. current_  )
.

Эти функции не видны при обычном неквалифицированном поиске или квалифицированном поиске , и могут быть найдены только с помощью поиска, зависимого от аргументов , когда iterator является ассоциированным классом аргументов.

Примечания

iterator всегда является random_access_iterator .