std::coroutine_handle<Promise>:: operator(), std::coroutine_handle<Promise>:: resume
From cppreference.net
<
cpp
|
coroutine
|
coroutine handle
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Coroutine support
| 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)
|
std::coroutine_handle
| 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 起) |
1)
恢复
*
this
所引用的协程的执行,如果该协程是无操作协程则不执行任何操作。
2)
不执行任何操作。
如果 * this 未引用已挂起的协程,或该协程不是无操作协程且未在其最终挂起点挂起,则行为未定义。并发恢复该协程可能导致数据竞争。
在非挂起时的执行代理上恢复协程具有实现定义行为,除非每个执行代理要么是由
std::thread
或
std::jthread
表示的线程,要么是执行
main
函数的线程。
目录 |
参数
(无)
返回值
(无)
异常
如果从协程执行过程中抛出异常,该异常会被捕获并在协程的promise对象上调用
unhandled_exception
。如果对
unhandled_exception
的调用抛出或重新抛出异常,则该异常会继续传播。
注释
在不同执行代理上恢复的协程应避免依赖贯穿始终的稳定线程标识,例如在挂起点之间持有互斥锁对象。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
销毁协程
(公开成员函数) |