ISO / IEC 14882:2020(即C++20标准)标准草案在2020年9月获得了全票通过,年底能正式发布。对C++20,多数的评论是它具有可与C++11相比较的重大变化。
下图是Rainer Grimm博文中给出的C++20的主要变化。

其实,一门编程语言的变化大致上是应该分两个层面,一个是语言层面,即增加了语言新特性;二是库层面,其实就是各种“语法糖”等,它们是在语言层面的基础上扩展、实现出来的,使用起来更“接地气”。
cppreference 网站也给出了C++20的主要变化(https://en.cppreference.com/w/cpp/20),它就分了两个部分:语言新特性和运行库新特性,其中运行库新特性又分为新增库和新增类/函数,如下图所示。

从目前的资料来看,C++20的变化(以笔者的判断,按“改变度”从大到小)主要体现在:
- module:module的引入,几乎是革命性的,它同时增加了import,export两个关键字,使C++可以摆脱C中“重复定义”,函数定义需要写两遍等历史包袱,变得“现代”起来。
- concept(包括require):大量模板的使用,真的很有必要对模板参数的类型做一定的约束,concept就是为

C++20带来了重大变革,包括引入module、concept、coroutines、range和span等新特性,增强了语言和库的功能。module解决了重复定义问题,concept简化了模板参数约束,coroutines提供了新的并行执行方式,range和span简化了集合操作,同时还有3-way comparison、consteval和constinit等小变化,以及线程和同步类的增强。
最低0.47元/天 解锁文章
318

被折叠的 条评论
为什么被折叠?



