![979bf706c849cc8f2ff4afa00c61be93.png](https://i-blog.csdnimg.cn/blog_migrate/f7fdd9bc2fda514bf112fcd9abb202bd.jpeg)
A coroutine is a function that can suspend execution to be resumed later.
协程是能暂停执行以在之后恢复的函数。
如上所述这是官网对协程的定义,C++20标准在今年年初确定了技术规范后,将于近期正式发布,而协程作为C++20的主要功能之一,前不久刚发布的GCC 10 编译器最新版本已经对C++20的该功能进行了初始支持,但目前除非显式的开启该选项,否则并不会启用此功能。
目前当GCC10处于C++20模式(std=c++20)中运行时,默认情况下是会启用C++的协程功能。而在明年将要发布的GCC11编译器将具有协程功能,当那时候,GNU编译器集合中对于C++20剩余部分功能的支持也将会被解决。
C++20的协程(Coroutines)功能允许某个函数在暂停执行之后再恢复,这个功能与modules, spaceship operator,concepts 和内存模型改进等一起共同构成 C++20 的主要特性。
目前在C++标准的状态页面上,面向GCC的C++20功能仍处于开发阶段,不过GCC10已结具备了C++20的大部分内容。可想而知,当GCC11发布后,剩余的其他项目很有可能会被解决,甚至包括为std=c++20 启用协程的更改。