std::noop_coroutine_promise

< cpp‎ | coroutine
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等字符串转换
(C++17)
(C++17)
 
协程支持
协程特征
协程柄
无操作协程
noop_coroutine_promise
(C++20)
平凡可等待体
 
定义于头文件 <coroutine>
struct noop_coroutine_promise {};
(C++20 起)

noop_coroutine_promise 是无操作协程的承诺类型。

无操作协程表现如同它

  • 在协程控制流外不做任何事,且
  • 在开始和恢复后立即暂停,且
  • 拥有一种协程状态,而销毁该状态为无操作,且
  • 若有任何指代它的 std::coroutine_handle 则绝不抵达其最终暂停点。

无操作协程能由 std::noop_coroutine 开始,并由其所返回的协程柄控制。返回的协程柄类型为 std::noop_coroutine_handle ,这是 std::coroutine_handle<std::noop_coroutine_promise> 的同义词。

无操作协程的某些操作通过 std::noop_coroutine_handle 类型在编译期确定为无操作。

注解

不要求定义无操作协程。例如 gcc 实现仅提供一个无操作协程的协程状态对象,而其 noop_coroutine 函数返回含有指向它的指针的 noop_coroutine_handle 而无需开始协程。

示例

参阅

创建在等待或销毁时无操作的协程柄
(函数)
std::coroutine_handle<std::noop_coroutine_promise> ,有意用于指代无操作协程
(typedef)