std::coroutine_traits
概念。
根据文档,描述如下
从返回类型和参数类型确定 Promise 类型 一个协程的。标准库实现提供了 可公开访问的成员类型 Promise_type 与 R::promise_type 相同 如果qualified-id有效并且表示一种类型。否则,它没有 这样的会员。
程序定义的 coroutine_traits 特化必须定义一个 可公开访问的嵌套类型 Promise_type,否则程序是 格式不正确。注意如果协程是非静态成员函数, 那么 Args... 中的第一个类型是隐式对象的类型 参数,其余为函数的参数类型(如果有)。
如果 std::coroutine_traits
::promise_type 不存在或者 不是类类型,对应的协程定义是 格式错误。 用户可以定义显式或部分专业化 coroutine_traits 依赖于程序定义的类型来避免 修改返回类型。
当协程是非静态成员函数时,有如何使用它的示例吗?这样做的目的是什么?