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 | ||||
Member of other specializations
|
||
void
operator
(
)
(
)
const
;
void resume ( ) const ; |
(1) | (since C++20) |
Member of specialization
std::coroutine_handle<std::noop_coroutine_promise>
|
||
constexpr
void
operator
(
)
(
)
const
noexcept
;
constexpr void resume ( ) const noexcept ; |
(2) | (since C++20) |
The behavior is undefined if * this does not refer to suspended coroutine, or the coroutine is not a no-op coroutine and suspended at its final suspend point. A concurrent resumption of the coroutine may result in a data race.
Resumption of a coroutine on an execution agent other than the one on which it was suspended has implementation-defined behavior unless each execution agent either is a thread represented by
std::thread
or
std::jthread
, or is the thread executing
main
.
Parameters
(none)
Return value
(none)
Exceptions
If an exception is thrown from the execution of the coroutine, the exception is caught and
unhandled_exception
is called on the coroutine's promise object. If the call to
unhandled_exception
throws or rethrows an exception, that exception is propagated.
Notes
A coroutine that is resumed on a different execution agent should avoid relying on consistent thread identity throughout, such as holding a mutex object across a suspend point.
Example
This section is incomplete
Reason: no example |
See also
destroys a coroutine
(public member function) |