BT

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

C++14标准已获通过

| 作者 臧秀涛 关注 4 他的粉丝 发布于 2014年8月21日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

8月18日,C++标准委员会召集人Herb Sutter发表了一篇博客《We have C++14!》。Sutter宣布,经过投票,C++14标准获得一致通过。草案文档经过一定的文字润色和修正之后,将在年内提交给ISO作为正式的C++标准发布。

C++之父Bjarne Stroustrup写道:“C++14按时交付了,主要的编译器提供商也已经在提供相应的实现。真是太棒了。对于想把C++当作一门现代语言使用的人而言,这是一个利好。”

文中还提到,在标准制定的同时,已经有编译器在提供部分或完全兼容的实现。这在C++标准化历史上是未曾有过的。第一个完整支持C++98的实现在标准发布大约5年之后才出现。C++11的完整支持也是在标准发布之后两年左右的时间才出现的。

C++14是对C++11的小幅修正,引入的新特性并不算很多。核心语言方面的新特性包括:

  • 二进制字面常量
  • 函数返回类型推导
  • decltype(auto)
  • Lambda捕获部分使用表达式
  • 泛型的Lambda
  • 变量模板
  • 扩展的constexpr
  • deprecated属性
  • 单引号用作数字分位符

标准库方面的扩展包括:

  • 共享锁
  • 标准自定义字面常量
  • make_unique
  • _t类型别名

第一个完整支持C++14的实现是今年1月发布的LLVM/Clang 3.4。其发布说明中介绍了它所支持的新语言特性。要使用新特性,需要在编译时提供-std=c++1y选项。

GCC已经支持大部分C++14特性,比如二进制字面常量、函数返回类型推导和泛型的Lambda等,具体支持状态可以参见该页面

Visual C++的支持状态可以参见这个页面

C++14的通过在Hacker News上引发了热议。网友daenz对现代C++的变化非常满意,他表示:

C++已经变成我的一门杀手级语言:超级快、现代、无处不在、稳定而且表达力强。

不过PopsiclePete就表示了反对,他认为这是假象,“现代C++”只存在于博客、书籍和教程中,现实世界中的C++是互相冲突的方言、模式和规则的综合体。MFC、Qt、Boost等类库和框架读起来差别太大了。他认为Go、Rust等语言更安全、更好,可以填补C++的空缺。

也有很多人对新标准带来的编码方面的改进表示欣喜。感兴趣的读者可以自行查看相关讨论。

C++14并不是终点,下一个主要标准C++17已经在讨论之中。对标准化过程感兴趣的读者可以关注https://isocpp.org/,这是最新、最权威的网站。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的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通知我

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT