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.
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) |
++current_ ;return*this;.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) |
--current_ ;return*this;.Bound не является std::unreachable_sentinel_t и current_ не является положительным, поведение не определено.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) |
Оператор != синтезируется на основе 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) |
i -= n; return i;.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