Namespaces
Variants

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

Из ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования возможностей библиотеки (C++20)
Программные утилиты
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношений (устарело в C++20)
 
Поддержка корутин
Трейты корутин
Дескриптор корутины
Пустые корутины
Тривиальные ожидаемые объекты
Генераторы диапазонов
(C++23)
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
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 является ассоциированным классом аргументов.

Пример