Spec-Zone.ru › C++

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

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 >>

Члены-данные

Член Определение
constW* value_ указатель на значение, которое нужно повторять
(объект-член, используемый только для экспозиции*)
index-type current_ текущая позиция
(объект-член, используемый только для экспозиции*)

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

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

/*iterator*/() = default;
(1) (с C++23)
constexpr explicit /*iterator*/
    ( const W* value, /*index-type*/ b = /*index-type*/() );
(2) (с 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;
(с 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) (с C++23)
constexpr void operator++(int);
(2) (с C++23)
1) Эквивалентно ++current_ ;return*this;.
2) Эквивалентно auto tmp = *this; ++*this; return tmp;.

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

constexpr /*iterator*/& operator--();
(1) (с C++23)
constexpr /*iterator*/ operator--(int);
(2) (с 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 );
(с 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 );
(с 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) (с C++23)
friend constexpr auto operator<=>
    ( const /*iterator*/& x, const /*iterator*/& y );
(2) (с 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) (с C++23)
friend constexpr /*iterator*/ operator+
    ( difference_type n, /*iterator*/ i );
(2) (с C++23)

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

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

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

friend constexpr /*iterator*/ operator-
    ( /*iterator*/ i, difference_type n );
(1) (с C++23)
friend constexpr difference_type operator-
    ( const /*iterator*/& x, const /*iterator*/& y );
(2) (с 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.

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/repeat_view/iterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API