Namespaces
Variants

std::coroutine_handle<Promise>:: operator(), std::coroutine_handle<Promise>:: resume

From cppreference.net
Utilities library
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
Член других специализаций
void operator ( ) ( ) const ;
void resume ( ) const ;
(1) (начиная с C++20)
Член специализации std::coroutine_handle<std::noop_coroutine_promise>
constexpr void operator ( ) ( ) const noexcept ;
constexpr void resume ( ) const noexcept ;
(2) (начиная с C++20)
1) Возобновляет выполнение корутины, на которую ссылается * this , или не выполняет никаких действий, если корутина является no-op корутиной.
2) Ничего не делает.

Поведение не определено, если * this не ссылается на приостановленную сопрограмму, или сопрограмма не является no-op сопрограммой и приостановлена в своей конечной точке приостановки. Параллельное возобновление сопрограммы может привести к состоянию гонки данных.

Возобновление сопрограммы на исполнительном агенте, отличном от того, на котором она была приостановлена, имеет поведение, определяемое реализацией, если только каждый исполнительный агент не является потоком, представленным std::thread или std::jthread , или не является потоком, выполняющим main .

Содержание

Параметры

(нет)

Возвращаемое значение

(нет)

Исключения

Если во время выполнения сопрограммы возникает исключение, оно перехватывается и вызывается unhandled_exception для объекта promise сопрограммы. Если вызов unhandled_exception выбрасывает или повторно выбрасывает исключение, это исключение распространяется дальше.

Примечания

Сопрограмма, которая возобновляется на другом исполнительном агенте, должна избегать зависимости от постоянства идентичности потока, например, удержания объекта мьютекса через точку приостановки.

Пример

Смотрите также

уничтожает сопрограмму
(публичная функция-член)