C++一致性路线图

[原文发表地址] C++ Conformance Roadmap

[原文发表时间] 2013-06-28 1:05 PM

C++一直是计算机行业的支柱,自从它在20世纪80年代早期面世以来,一直被重用。然而,即使它拥有丰富的历史,它仍在以一种富有意义的方式不断发展,目前其节奏比我们过去看到的要更快。实际上,今年对于C++来说已经算是意义重大的一年。在四月份,在C++11获得批准时隔不到两年,ISO C++委员会表决通过了即将到来的C++14标准所采用的功能集,它有望在明年完成并且完善了C++11标准里的关键功能比如范型Lambda表达式。

我们从伴随我们的Visual Studio 2010发布的Visual C++中支持的C++11的路径开始,在这里面我们实现了一些C++11的功能,包括auto和Lambda函数。在Visual Studio 2012中,我们对这个标准实现了更多,支持了比如基于范围的循环,标准线程和Futures。这周我们宣布了Visual Studio 2013预览版,正如这周早些时候我在发表这个关于预览版的博文中提到的,它提供了更多的C++11的支持,包括如可变参数模板和委托构造函数功能。但是正如你们一些朋友在博客中跟帖指出的,提供完全的C++11支持的路还有很长。

Herb Sutter(我们Visual C++团队的架构师和ISO C++标准委员会的召集人)今天在他的关于“C++的未来”Build 2013会议会话中公布了一个Visual C++何时能实现目前ISO C++完全的功能集的一个路线图。因为C++14“完成了C++11”,也因为两个月前,现在我们知道了C++14的功能集,所以我们认为C++14草案是当前的目标。我想Herb的一部分陈述也很好地阐明了我们的目的:

“Visual C ++的目标是C++14,所以我们将所有C ++11和C++14的新功能都一起来做。我们会做所有的功能,但我们会以可尽快提供给客户最大的价值的顺序来做。那意味着我们将实现所有的C++11和C++14,但一些高价值的C ++14的功能,如范型Lambda表达式,应放在C ++11的其它功能之前。”

为我们工作细节的全面一致性,我们将分享一个更具体的时间表,但是从下面的Herb谈话中的幻灯片展示了我们目前所知的,列出了仍需要增加的功能和我们所期望出现的大致顺序。

这里有六“桶”语言功能,它们一起将Visual C++带向一个完全实现, 它不仅仅是C++11和C++14,而且还有“C++14浪潮”包括三个额外的技术规范,预计也要由ISO C++委员会在接下来一年来完成:一个基于升压文件系统版本3(之前一个版本2已经包含在Visual C++ 2012中)的文件系统,一个初始网络库和一个被称为的“概念”语言扩展集,它能开启表达模板约束,重要的是提高模板的类型检查,并提供大大提高的诊断。

今年晚些时候Visual C ++2013 RTM将提供前两桶功能。Herb还宣布,应客户的要求,RTM版本还将包括几个巧妙的编译C代码时用的C99语言扩展,以便于一些流行的社区库(包括FFmpeg)现在将可以用Visual C++2013编译。

接下来两桶的一些子集,包括了一些最高期待的C++14功能(如通用lambda表达式和广义的lambda捕捉)已经一并与Visual C++ 2013 实现了而且在Visual C++ 2013 RTM之后很快会在一个CTP发布中发布。这个CTP还将包括微软提议的C++标准的异步/等待功能的实现,异步/等待不只是是我们做WinRT编程的C++/CX 客户的首要需求,它更多的是对于任何异步代码来说都有普遍的奇妙用处。

Herb今天也宣布了GoingNative发布会将在几个月后的九月4日至6日于华盛顿州雷蒙德微软校园上举行。届时,我们将能分享含有即将到来的CTP的时间和功能集以及今天公布的路线图相关工作的更为具体的细节的另一个进展。GoingNative会议将包括由C++的创始人Bjarne Stroustrup作主旨发言,还有C++社区与现行标准委员会的名人们的谈话:Scott Meyers, Facebook的Andrei Alexandrescu, 谷歌的Chandler Carruth, 微软的Stephan T. Lavavej, Adobe的Sean Parent, IBM的Michael Wong (他也代表了加拿大的ISO C++和OpenMP的现任董事长) 等等。会议注册现已开放。

我们很高兴看到C++背后在整个行业持续的发展势头,我们期待着继续成为这个重要语言和团体的一部分。欲了解更多信息,并讨论这些杰作,请参阅Visual C + +团队博客

谢谢!

请跟贴我的Twitter https://twitter.com/ssomasegar