std::coroutine_handle<Promise>:: operator(), std::coroutine_handle<Promise>:: resume
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Coroutine traits | ||||
|
(C++20)
|
||||
| Coroutine handle | ||||
|
(C++20)
|
||||
| No-op coroutines | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Trivial awaitables | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Range generators | ||||
|
(C++23)
|
| Member functions | ||||
| Conversion | ||||
| Observers | ||||
| Control | ||||
|
coroutine_handle::operator()
coroutine_handle::resume
|
||||
| Promise access | ||||
| Export/import | ||||
| Non-member functions | ||||
| Helper classes | ||||
|
Член других специализаций
|
||
|
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 сопрограммой и приостановлена в своей конечной точке приостановки. Параллельное возобновление сопрограммы может привести к состоянию гонки данных.
Возобновление сопрограммы на исполнительном агенте, отличном от того, на котором она была приостановлена, имеет поведение, определяемое реализацией, если только каждый исполнительный агент не является потоком, представленным
std::thread
или
std::jthread
, или не является потоком, выполняющим
main
.
Содержание |
Параметры
(нет)
Возвращаемое значение
(нет)
Исключения
Если во время выполнения сопрограммы возникает исключение, оно перехватывается и вызывается
unhandled_exception
для объекта promise сопрограммы. Если вызов
unhandled_exception
выбрасывает или повторно выбрасывает исключение, это исключение распространяется дальше.
Примечания
Сопрограмма, которая возобновляется на другом исполнительном агенте, должна избегать зависимости от постоянства идентичности потока, например, удержания объекта мьютекса через точку приостановки.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
уничтожает сопрограмму
(публичная функция-член) |