微软的新编译器增加了对 C++11 特性的支持

  • Jeff Martin
  • 臧秀涛

2012 年 11 月 15 日

话题:C++语言 & 开发

在 Build 2012 开发者大会上,Herb Sutter 就微软对 C++11 和 C++ 社区的总体支持做出了一项重要宣布。当微软发布 VS2012 时,他们保证该产品的架构就是为支持带外发布而设计的,以便使新特性能够更快速地进入市场。不过, Sutter 也让公众了解到,为了改进 Visual C++ 对全部 C++11 标准的支持,2012 年 11 月的 CTP 版本包含了一个新的编译器。虽然尚不完整,但是可以看到微软的进步。

在介绍该更新时,Sutter 评论说,“在微软,我们喜爱.NET,也喜爱 HTML5 和 JavaScript,但是很多工作是构建于 C++ 之上的”。为了强调这一支持,他指出相对于过去用 C 编写 Windows,现代 Windows 对 C++ 的依赖越来越多了。

这点很重要,在 Sutter 看来,在微软只有一个团队是其他团队都要依赖的——“每个团队都(直接或间接地)依赖于 Visual C++”。这个预览版提供了以下新特性:

  • 显式类型转换运算符
  • 原始的字符串字面量
  • 函数模板默认参数
  • 委托构造函数
  • 统一的初始化与 initializer_list(CTP 尚不支持 vector 初始化语法)
  • 变长参数模板

Sutter 很快又指出,这次发布的编译器只是一个预览版,也就是说不应该将其用于产品代码中。(该预览版可以与 VS2012 Express for Desktop 一起使用。)

CTP(正式名称是“Visual C++ Compiler November 2012 CTP”)目前已经可以从微软的网站下载了。微软的 Stephan T. Lavavej 在 Channel 9 发布了一个介绍这些新特性的教程

Sutter 提到微软会继续为 VS2012 提供带外更新,有关 C++11 的更多更新会在 2013 年上半年提供。

ISO C++ 发布时间表加快

Sutter 不仅宣布了 CTP,他还提到:微软、Google、IBM 和 Intel 联合其他一些公司和组织成立了标准 C++ 基金会,致力于 C++ 语言的推广、指导和开发。 基金会的创始人包括 Herb Sutter、Bjarne Stroustrup、Chandler Carruth(Google)、Beman Dawes(Boost)、Michael Wong(IBM)和 Stefanus Du Toit(Intel)等。

Sutter 还说到,一个新的主要 C++ 标准——C++17——计划于 2017 年发布。 2014 年将会发布一个小的升级版本。这说明相对于之前的发布节奏(C++ 98、 C++03 和 C++11),标准化进程将大大加速。

为了使新 C++ 的信息更为透明以及向大众公布相关新闻,Sutter 还宣布了 isocpp.org 网站,他将其描述为“实现 C++ 同盟的大本营”。该网站的目标是让标准化过程更为透明并且能够开放地交流,还能为对现代 C++ 开发有兴趣的人提供最新的有用信息。

查看英文原文Microsoft's New Compiler Increases C++11 Compliance


感谢李永伦对本文的审校。

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

C++语言 & 开发