BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

C++17功能列表现在完成,进入复查阶段

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 薛梦迪 关注 0 他的粉丝 发布于 2016年7月28日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

正如委员会成员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();
map mymap;
if (auto result = mymap.insert(value); result.second) {
// insert succeeded, and result is valid for this block
use(result.first);  // ok
// ...
}

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

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

查看英文原文C++17 Feature List is Now Complete, Enters Review


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

还能再复杂点么,呵呵。 by Bai Tony

rt

期待死了 by mr code

‘爽 期待~~~~~

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT