std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume
来自 cppreference.com
< cpp | coroutine | coroutine handle
其他特化的成员 |
||
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 所引用的协程的执行,或者如果协程是无操作协程,则不执行任何操作。
2) 不执行任何操作。
如果 *this 不引用挂起的协程,或者协程不是无操作协程并且在其最终挂起点挂起,则行为未定义。协程的并发恢复可能导致数据竞争。
在与协程挂起时不同的执行代理上恢复协程的行为是实现定义的,除非每个执行代理都是由 std::thread 或 std::jthread 表示的线程,或者是在执行 main
的线程。
内容 |
[编辑] 参数
(无)
[编辑] 返回值
(无)
[编辑] 异常
如果在协程执行期间抛出异常,则会捕获该异常,并在协程的承诺对象上调用 unhandled_exception
。如果对 unhandled_exception
的调用抛出或重新抛出异常,则会传播该异常。
[编辑] 注释
在不同执行代理上恢复的协程应避免依赖于整个过程中一致的线程标识,例如在挂起点跨越互斥锁对象。
[编辑] 示例
本节不完整 原因:没有示例 |
[编辑] 另请参阅
(C++20) |
销毁协程 (公共成员函数) |