博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++17功能列表现在完成,进入复查阶段
阅读量:6516 次
发布时间:2019-06-24

本文共 1029 字,大约阅读时间需要 3 分钟。

在芬兰奥卢的最后一场会议中,ISO C++委员会完成了C++17功能列表的定义。在会议中,通过了许多新的语言和库的功能,包括constexpr if、template 、结构化绑定和一些其他的功能。

正如委员会成员Jens Weller所写道,现在功能列表已经完成,即将开始复查阶段:

接下来的两次会议主要会推进复查、反馈和国家级机构标记的问题。这不会给标准增加新的内容,但是可能有轻微或重大变化。

在奥卢的最后一次委员会议上,C++17新增的功能中,Weller强调了以下功能:

std::variant,它提供了一个安全、范式、基于栈的可区别union容器。

if constexpr(expression),它可以看作C++版本中编译期的 if。

Template auto,它允许使用auto声明非类型的模版参数。这会允许开发者们写这样的代码:

template void f() { }f<10>; // deduces int

Herb Sutter强调了这个功能开启的许多可能性,例如在一个函数模版内部而不是通过许多模板特化来囊括所有它的算法特例情况。

结构化绑定,它使得在元组中声明并初始化多个变量成为可能:

tuple get_tuple();auto [a , b , c] = get_tuple();

if和which中的变量声明与for循环中已经允许的格式相似:

map mymap;if (auto result = mymap.insert(value); result.second) {// insert succeeded, and result is valid for this blockuse(result.first); // ok// ...}

另外,Sutter提到了其他一些值得强调的新特性,包括:

为字节对齐数据动态内存分配保证副本省略,这可以确保当你使用一个值传递的对象来初始化本地变量时,编译器不会执行任何额外的复制或移动,就像C++11里一样。

上面的列表中只包括了上一次委员会议中通过的新特性,但是新C++17中的功能列表部分会更长一些。如欲获取审核过程结束后新标准中的内容概览,请在Stack Overflow跟帖中查看。

====================================分割线================================

本文转自d1net(转载)

你可能感兴趣的文章
让数据会思考会说话,为出海企业提供多样化数据智能解决方案
查看>>
我眼中的自动化测试框架设计要点
查看>>
FLIF:自由的无损图像格式
查看>>
《计算机系统:核心概念及软硬件实现(原书第4版)》——3.7 总结
查看>>
Google开源Inception-ResNet-v2,提升图像分类水准
查看>>
Opera 出售细节曝光:昆仑出资1.68亿美元
查看>>
CentOS 5.3 下快速安装配置 PPTP ××× 服务器
查看>>
产品经理学习总结之技术和设计篇
查看>>
23种设计模式(15):备忘录模式
查看>>
java基础学习总结——IO流
查看>>
iOS获取APP ipa 包以及资源文件
查看>>
类加载器总结
查看>>
[1298]活动选择 山东理工OJ
查看>>
Spring Cloud Hystrix java.lang.NoClassDefFoundError: org/aspectj/lang/JoinPoint 问题
查看>>
Go语言中通过结构体匿名字段实现方法的继承和重载
查看>>
select into 和 insert into select 两种表复制语句
查看>>
LOJ 117 有源汇有上下界最小流
查看>>
数组遍历——Vue.js
查看>>
linux提权辅助脚本(更新exp列表)
查看>>
IBATIS 写BLOB字段遇到的问题
查看>>