Namespaces
Variants

std:: generator<Ref,V,Allocator>:: iterator

From cppreference.net
Utilities library
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
Ranges library
Range adaptors
class /*iterator*/ ;
( только для демонстрации* )

Тип возвращаемого значения generator::begin . Моделирует indirectly_readable и input_iterator .

Содержание

Типы членов

Тип члена Определение
value_type std::generator::value
difference_type std::ptrdiff_t

Члены данных

Участник Описание
std:: coroutine_handle < std :: generator :: promise_type > coroutine_ Дескриптор сопрограммы
( объект-член только для демонстрации* )

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

создает итератор
(публичная функция-член)
присваивает другой итератор
(публичная функция-член)
возвращает базовое значение
(публичная функция-член)
продвигает итератор
(публичная функция-член)

std::generator:: iterator :: iterator

/*iterator*/ ( /*iterator*/ && other ) noexcept ;
(since C++23)

Инициализирует coroutine_ с помощью std:: exchange ( other. coroutine_ , { } ) ; .

std::generator:: iterator :: operator=

/*iterator*/ & operator = ( /*iterator*/ && other ) noexcept ;
(since C++23)

Эквивалентно coroutine_ = std:: exchange ( other. coroutine_ , { } ) ; .

Возвращает: * this .

std::generator:: iterator :: operator*

reference operator * ( ) const
noexcept ( std:: is_nothrow_copy_constructible_v < reference > ) ;
(начиная с C++23)
  1. Пусть reference будет базовым типом std::generator .
  2. Пусть для некоторого объекта генератора x его coroutine_ находится в стеке * x. active_ .
  3. Пусть x. active_ - > top ( ) ссылается на приостановленную сопрограмму с объектом промиса p .

Эквивалентно return static_cast < reference > ( * p. value_ ) ; .

std::generator:: iterator :: operator++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (since C++23)
constexpr void operator ++ ( int ) ;
(2) (since C++23)
1) Пусть для некоторого объекта генератора x coroutine_ находится в стеке * x. active_ .
Эквивалентно x. active_ - > top ( ) . resume ( ) .
Возвращает: * this .
2) Эквивалентно ++* this ; .

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

(C++23)
сравнивает базовый итератор с сигнальным значением
(функция)

operator== (std::generator:: iterator )

friend bool operator == ( const /*iterator*/ & i, std:: default_sentinel_t ) ;
(since C++23)

Эквивалентно return i. coroutine_ . done ( ) ; .

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

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

Пример