std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
| Член других специализаций |
||
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) |
*this, или не делает ничего, если корутина является no-op корутиной.Поведение не определено, если *this не ссылается на приостановленную корутину, или корутина не является no-op корутиной и приостановлена в своей конечной точке приостановки. Одновременное возобновление корутины может привести к гонке данных.
Возобновление корутины на агенте выполнения, отличном от того, на котором она была приостановлена, имеет поведение, определяемое реализацией, если только каждый агент выполнения не является потоком, представленным std::thread или std::jthread, или потоком, выполняющим main.
Параметры
(нет)
Возвращаемое значение
(нет)
Исключения
Если во время выполнения сопрограммы возникает исключение, оно перехватывается и вызывается
unhandled_exception
для объекта promise сопрограммы. Если вызов
unhandled_exception
выбрасывает или повторно выбрасывает исключение, это исключение распространяется дальше.
Примечания
Сопрограмма, которая возобновляется на другом исполнительном агенте, должна избегать зависимости от постоянства идентичности потока, например, удержания объекта мьютекса через точку приостановки.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
уничтожает сопрограмму
(публичная функция-член) |