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

来源: OSCHINA
编辑:
2019-02-24 07:42:00

刚刚结束的 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/

展开阅读全文
精彩评论

引用来自“OSC_juihGf”的评论

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

引用来自“zjh6”的评论

期待期待,说越来越复杂的,你们去了解过c++20吗?
单从c++20角度来说确实是越来越简单,但只要c++不做减法,淘汰不符合规范的缺陷语法,从全局看C++只会越来越复杂。相比来说,C++缺少Python这种壮士断腕的勇气。
2019-02-24 11:37
16
举报
最重要的还是网络库。
2019-02-24 10:37
8
举报
C++真的是有啥加啥啊。
2019-02-24 20:53
4
举报
32 收藏
分享
47 评论
32 收藏
分享
返回顶部
顶部