C++20 最新进展:加入模块化和协程,进入特性冻结阶段

局长
 局长
发布于 2019年02月24日
收藏 31

刚刚结束的 C++ 标准委员会2019春季会议在夏威夷科纳举办,委员会在这次会议中确定了下一个国际标准 C++20 的全部特性,这标志着 C++20 的特性设计工作已完成

按照 C++20 的发布计划,这次会议正是为了冻结 C++20 的特性而举办,进入特性冻结阶段(Feature freeze)意味着所有的功能特性将被冻结,并且不会再加入更多的新特性。

接下来我们看看上周会议确定添加至 C++20 草案的新特性:

协程的加入应该是最大的惊喜了,值得期待!官方还表示,C++20 应该会是一个像 C++11 那样的大版本。

以下的特性已在本次会议或之前的会议上通过了批准,但尚未添加到 C++20 中,因为目前规范仍在编写中。它们有望在2019年7月的科隆会议上被加入,不过由于时间限制,可能无法完成所有工作。

下面的这些特性,早已在之前的会议上通过了批准:

按照计划的发布进度,C++20 预计将于明年夏季推出。


C++20 发布计划

最后,看看 C++ 主要特性的开发进度。

自上次会议以来的变更:

特性 状态 依赖 Current Target (Conservative Estimate) Current Target (Optimistic Estimate)
Concepts Concepts TS v1 published and merged into C++20   C++20 C++20
Ranges Ranges TS v1 published and merged into C++20 Concepts C++20 C++20
Contracts Merged into C++20   C++20 C++20
Modules Merged design approved for C++20   C++20 C++20
Coroutines Coroutines TS v1 published and merged into C++20   C++20 C++20
Executors Proposed v1 design approved for C++23   C++26 C++23
Networking Networking TS v1 published Executors C++26 C++23
Reflection Reflection TS v1 published   C++26 C++23

名词解释

  • IS = 国际标准。如 C++ 编程语言:C++11, C++14, C++17 等
  • TS = 技术规范。在该阶段中,特性分支处于可使用状态,但尚未被所有厂商实现。如 Coroutines TS v1, Modules TS v1 等。

  • CD = 委员会草案,即 IS/TS 的草案,用于给标准机构进行审查和反馈("beta testing")。

据透露,工具研究小组 SG15 决定创建一个 C++ 生态系统技术报告,该报告将描述新模块化 C++ 中工具(构建系统等)的最佳实践和最新技术。

参考:https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:C++20 最新进展:加入模块化和协程,进入特性冻结阶段
加载中

精彩评论

Raphael_goh
Raphael_goh

引用来自“OSC_juihGf”的评论

真的没有必要,很多人都在用老版本。
所以你的意思是就让C++一直烂下去得了,不要发展了。比如大部分人都在用Java8要什么Java11。Python2用的好好的,要什么Python3。xp当初卖的好好的,为什么微软非要弄个win7。是这个意思么。
一码千里
欢迎C++20,基础设施离不开C/C++。
本人用c++14开发过一个流量清洗项目,分布式运行在500多台服务上,服务于各大手游公司,业务高峰时系统表现十分高效稳定,从没出现过内存问题,项目的成功归功于现代C++易用高效。
Raphael_goh
Raphael_goh

引用来自“zjh6”的评论

期待期待,说越来越复杂的,你们去了解过c++20吗?
单从c++20角度来说确实是越来越简单,但只要c++不做减法,淘汰不符合规范的缺陷语法,从全局看C++只会越来越复杂。相比来说,C++缺少Python这种壮士断腕的勇气。
kut
kut
最重要的还是网络库。
Pader
Pader
C++真的是有啥加啥啊。

最新评论(47

whiter001
whiter001
加入模块化, 会不会很大的提高编译的速度哦
Ayuru
Ayuru

引用来自“OSC_juihGf”的评论

真的没有必要,很多人都在用老版本。

引用来自“Raphael_goh”的评论

所以你的意思是就让C++一直烂下去得了,不要发展了。比如大部分人都在用Java8要什么Java11。Python2用的好好的,要什么Python3。xp当初卖的好好的,为什么微软非要弄个win7。是这个意思么。
我们公司的经理还在吃老本用java 7,真的是想死
次第花开
次第花开
个人觉得,可以学学JavaScript,JS也是历史垃圾极多,但是人家搞了个"严格模式"。
你开启“严格模式”,就可以禁止掉历史垃圾。况且很多JSLint。

C++也引入一个严格模式,逐步摆脱历史包袱。
大賢者
大賢者
随便更新,反正c++越来越少人用了。
开源中国射线科科长
开源中国射线科科长
对STL标准模板库有着极其复杂的感情。。。(被7000行垃圾M1射频卡业务逻辑代码搞得生不如死)
乌龟壳
乌龟壳

引用来自“zjh6”的评论

期待期待,说越来越复杂的,你们去了解过c++20吗?

引用来自“Raphael_goh”的评论

单从c++20角度来说确实是越来越简单,但只要c++不做减法,淘汰不符合规范的缺陷语法,从全局看C++只会越来越复杂。相比来说,C++缺少Python这种壮士断腕的勇气。

引用来自“zjh6”的评论

那是你不会用,c++用好了,简直威力无穷.
越复杂,那是你的感觉.我的感觉是,越来越爽.
有啥缺陷语法,是宏吗?你不用宏就是了嘛,用元编程嘛.
减法,减什么?只要速度够快,我需要减什么?

引用来自“Raphael_goh”的评论

如果只有你一个人用,自然没问题。但你要是在天天为别人的烂代码擦屁股,你就觉得,怎么总是屡禁不止,C++能禁掉这种破语法就好了。最后说一句,我还是很喜欢c++的,只是觉得c++适当做减法能更好,没别的意思……
所以 c++ 配 lint 比较合适,禁用语法这个功能在 lint 里报告出来
jump--jump
jump--jump

引用来自“zjh6”的评论

好的语言,都不会太简单.太简单,就没有前途.像go,有啥前途?
你有的我都有.我有的你却没有.我的工具快如闪电.而你还得重新造轮子.

引用来自“志田未来”的评论

golang没前途。。。真是无知,多上github看看新出的网络编程库一半都是go,这势头还有睁眼瞎说没前途 呵呵
而且golang还有重量级应用,docker容器现在是go一家独大了。

引用来自“zjh6”的评论

别急嘛,慢慢看嘛.好戏才开场.
简单才有前途啊,简单就是优雅。简单还强大就是美啊。
shzwork
shzwork
ABI统一一下吧
x
xshrim
尾大不掉, 还是投入golang的怀抱吧^_^
久永
久永
只想着“出新”,却没有勇气“推陈”,唉~没有前途!
返回顶部
顶部