写点什么

C++14 标准已获通过

  • 2014-08-20
  • 本文字数:997 字

    阅读完需:约 3 分钟

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 )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-20 05:194073
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 139.5 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

恭喜 OpenSergo 获得中国开源云联盟 2022 “优秀开源项目”

阿里巴巴云原生

阿里云 开源 云原生 OpenSergo

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

让 Java Agent 在 Dragonwell 上更好用

阿里巴巴云原生

Java 阿里云 云原生

用javascript分类刷leetcode9.位运算(图文视频讲解)

js2030code

JavaScript LeetCode

前端二面经典vue面试题指南

bb_xiaxia1998

Vue

React源码分析2-深入理解fiber

flyzz177

React

React源码解读之任务调度

flyzz177

React

React源码解读之React Fiber

flyzz177

React

2023前端二面常考面试题合集

loveX001

JavaScript

大厂前端面试考什么?

loveX001

JavaScript

WWW 是否应该属于 URL?

devpoint

Cookie url SEO www

RocketMQ 多语言 SDK 开源贡献召集令

阿里巴巴云原生

阿里云 RocketMQ 云原生

京音平台-一起玩转SCRM之电销系统

京东科技开发者

架构设计 系统 scrm 企业号 1 月 PK 榜 电销

云原生人才培养计划2.0 之 消息产品「全家桶训练营」重磅来袭

阿里巴巴云原生

阿里云 云原生

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

前端leetcde算法面试套路之回溯

js2030code

JavaScript LeetCode

React源码解读之更新的创建

flyzz177

React

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

react的jsx和React.createElement是什么关系?面试常问

beifeng1996

React

React源码分析4-深度理解diff算法

flyzz177

React

React源码分析3-render阶段(穿插scheduler和reconciler)

flyzz177

React

分布式是大数据处理的万能药?

jiangxl

React面试:谈谈虚拟DOM,Diff算法与Key机制

beifeng1996

React

从零手写react-router

helloworld1024fd

JavaScript

SOA 和微服务有何区别?

江南一点雨

Java 微服务 springboot SOA

MSE ZooKeeper 数据导入导出功能上线

阿里巴巴云原生

zookeeper 阿里云 云原生

前端高频react面试题整理

beifeng1996

React

社招前端react面试题整理

beifeng1996

React

百度前端经典vue面试题整理

bb_xiaxia1998

Vue

vivo 故障定位平台的探索与实践

vivo互联网技术

根因分析 聚类 K-Means 二阶指数

C++14标准已获通过_语言 & 开发_臧秀涛_InfoQ精选文章