C++20新特性—概述

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

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就是为
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值