Spec-Zone.ru › C++

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

struct /*iterator*/;
(с C++23)
(только для примера*)

Тип результата repeat_view::begin.

Типы членов

Тип члена Определение
index-type
  • std::ptrdiff_t, если Bound совпадает с std::unreachable_sentinel_t. В противном случае,
  • Bound.
    (только для примера*)
iterator_concept std::random_access_iterator_tag
iterator_category std::random_access_iterator_tag
value_type W
difference_type
  • /*index-type*/, если /*is-signed-like*/</*index-type*/> равно true,
  • /*iota-diff-t*/(/*index-type*/) в противном случае, где /*iota-diff-t*/ имеет такое же значение, как в iota_view.

Члены данных

Название члена Определение
value_ (private) Указатель типа const W*, хранящий указатель на значение для повторения.
(только для примера*)
current_ (private) Объект типа /*index-type*/, хранящий текущую позицию.
(только для примера*)

Члены-функции

(конструктор)
(C++23)
создаёт итератор
(публичный член-функция)
operator*
(C++23)
возвращает текущий поддиапазон
(публичный член-функция)
operator[]
(C++23)
доступ к элементу по индексу
(публичный член-функция)
operator++operator++(int)operator--operator--(int)operator+=operator-=
(C++23)
продвигает или уменьшает подлежащий итератор
(публичный член-функция)

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)
(только для примера*)
1) Инициализирует члены данных по умолчанию:
  • value_ значением nullptr_t через его инициализатор по умолчанию;
  • index_ значением по умолчанию (= /*index-type*/()).
2) Инициализирует value_ значением value и bound_ значением b. Если Bound не равно std::unreachable_sentinel_t, то b должно быть неотрицательным. Этот конструктор не входит в публичный интерфейс.

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

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

Эквивалентно return *value_;.

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

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

Эквивалентно return *(*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, то bound_ должно быть положительным.
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, то (bound_ + n) должно быть неотрицательным.

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

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

Эквивалентно current_ -= n; return *this;. Если Bound не равно std::unreachable_sentinel_t, то (bound_ - n) должно быть неотрицательным.

Независимые функции

operator==operator<=>
(C++23)
сравнивает подлежащие итераторы
(функция)
operator+operator-
(C++23)
выполняет арифметические операции с итераторами
(функция)

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) (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) Эквивалентно return 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/w/cpp/ranges/repeat_view/iterator

Spec-Zone.ru

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