GCC 11 在 C++20 模式下将启用协程支持

来源: OSCHINA
编辑: 局长
2020-05-19

最近发布的 GCC 10 编译器已对 C++20 的主要功能协程(Co-Routines)进行了初始支持,但是除非显式地开启该选项,否则并不会启用此功能。

当 GCC 10 在 C++20 模式(std=c++20) 中运行时,默认情况下会启用 C++ 协程。而将于明年发布的 GCC 11 在 C++20 推出时将具有协程功能,到那时,GNU 编译器集合中支持 C++20 的剩余部分也应该会被解决。

协程(Coroutines)是 C++20 的主要功能之一,它允许某个函数在暂停执行之后再恢复。有关 C++ 协程的示例语法和更多详细信息请在 cppreference.com 上查看。可以看到,官方对协程的定义是:

A coroutine is a function that can suspend execution to be resumed later. 
协程是能暂停执行以在之后恢复的函数。

与 concepts, modules, spaceship operator 和内存模型改进等一起共同构成 C++20 的主要特性。

C++20 标准在今年年初确定了技术规范后,将于近期正式发布。GCC 10 已经配备了 C++20 的大部分内容,而对于 GCC 11 来说,其余的项目很有可能将会被解决,包括像上周看到的为 std=c++20 启用协程的更改。

在 C++ 标准的状态页面上,仍有面向 GCC 的 C++20 功能处于开发阶段。如果想知道 LLVM Clang 上的 C++20 状态,可查看此页面

展开阅读全文
10 收藏
分享
加载中
精彩评论
继续看好C++前浪😄
2020-05-19 10:14
9
举报
😁期待
2020-05-19 09:17
2
举报
C++20在Windows上需要VS2017以上才能支持了.
2020-05-19 20:22
1
举报
能文也能武
2020-05-19 19:22
1
举报
期盼已久
2020-05-19 11:57
1
举报
最新评论 (11)
C++20 都快脱离C++本质了吧, 什么都往上对,又要兼容又要新特新
2020-05-20 09:07
0
回复
举报
C++20在Windows上需要VS2017以上才能支持了.
2020-05-19 20:22
1
回复
举报
能文也能武
2020-05-19 19:22
1
回复
举报
以后看c++代码如同看飞机的设计图纸。
2020-05-19 15:59
0
回复
举报
三月份就开始说近期发布,近期到底是多久
2020-05-19 14:48
0
回复
举报
期盼已久
2020-05-19 11:57
1
回复
举报
协程对资源生命期的管理更加复杂. 对于有GC的语言能省心一点.
2020-05-19 11:00
0
回复
举报
你理解错了!
2020-05-20 08:24
0
回复
举报
查了一下, 协程会把某些栈分配改成堆分配, 以解决生命期问题, 看来不算复杂, 只是这个堆分配没法自定义内存分配器.
2020-05-20 10:32
0
回复
举报
继续看好C++前浪😄
2020-05-19 10:14
9
回复
举报
😁期待
2020-05-19 09:17
2
回复
举报
更多评论
11 评论
10 收藏
分享
返回顶部
顶部