- 主题:c/c++的开发人员是不是越来越少了?
c++20的协程是个很底层的东西,目前可以说只是半成品,暴露的接口是用来实现 generator 或者 task 的。
【 在 gang2k 的大作中提到: 】
: 我觉要说难,还是模版元编程。
:
: coroutine没细看,喵了一眼,是类似python里yield一类的东西吗?
: ...................
--
FROM 114.249.199.*
有 co_yield,还有别的关键字和类型。python 你定义一个函数 yield 就直接是 generator 了,可目前 c++20 的标准库还不行,你要借助库基础设施定义若干接口来实现好 generator 类型,才能让 co_yield 的返回值能用。
比如 vc 就提供了 generator 和 awaitable 的实现。
关键大头不是 generator,而是用这套机制包装非阻塞 io,提供协程化的异步 io 函数,然后还要提供协程调度器,给出诸如线程池上的用户态线程的东西,这是 asio 库做的。也是近年大家关注协程的动机。
c++ 的协程未来还要加上 executor、net 这些东西才算实用。当然目前已经有一些第三方库了。
【 在 gang2k 的大作中提到: 】
: 那还真的像yield
: 【 在 milksea 的大作中提到: 】
: : c++20的协程是个很底层的东西,目前可以说只是半成品,暴露的接口是用来实现 generator 或者 task 的。
: ...................
--
修改:milksea FROM 114.249.199.*
FROM 114.249.199.*
python 很早就有 yield 了,但引入 async await 关键字并提供 asyncio 库也是很晚的事情了。
c++的协程是如下东西的半成品
https://docs.python.org/zh-cn/3/library/asyncio-task.html#coroutine
【 在 gang2k 的大作中提到: 】
: 那还真的像yield
: 【 在 milksea 的大作中提到: 】
: : c++20的协程是个很底层的东西,目前可以说只是半成品,暴露的接口是用来实现 generator 或者 task 的。
: ...................
--
修改:milksea FROM 114.249.199.*
FROM 114.249.199.*