std::coroutine_handle<Promise>::operator(), std::coroutine_handle<Promise>::resume

来自cppreference.com
 
 
工具库
语言支持
类型支持(基本类型、RTTI)
库功能特性测试宏 (C++20)
动态内存管理
程序工具
协程支持 (C++20)
变参数函数
调试支持
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
初等字符串转换
(C++17)
(C++17)

 
协程支持
协程特征
协程句柄
无操作协程
平凡可等待体
范围生成器
(C++23)
 
 
其他特化的成员
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::threadstd::jthread 表示的线程,或执行 main 的线程。

参数

(无)

返回值

(无)

异常

如果协程的执行中抛出了异常,则该异常被捕获并在该协程的承诺对象上调用 unhandled_exception。如果对 unhandled_exception 的调用抛出或重新抛出了异常,则传播该异常。

注解

在不同执行代理上恢复的协程应该处处避免依赖一致的线程同一性,例如跨过暂停点保有互斥体对象。

示例

参阅

(C++20)
销毁协程
(公开成员函数)