BT

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

Visual Studio距离支持C++11/14更近了

| 作者 Jeff Martin 关注 16 他的粉丝 ,译者 李彬 关注 1 他的粉丝 发布于 2013年7月9日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

首先让我们明确:是的,作为微软承诺支持标准C/C++的一部分,Visual Studio即将提供许多C99和C++ 11特性(例如可变参数模板)。不过用户需要升级到Visual Studio 2013才能够与这些特性见面。

负责微软开发部门的全球副总裁S.Somasegar发布了一份路线图,展现了有关遵循C++11/14以及集成特定的C99标准的规划。以C++为开始,Somasegar通过微软的资深同事(也是合伙项目经理)Herb Sutter分享了这一声明:

“Visual C++瞄准了C++14,因此我们将把C++11和C++14中的全部新特性作为一整套工作来完成。我们将实现全部特性,但我们将采用‘最有价值的部分最快交付给客户’的次序来实现。这意味着我们将支持全部C++11和C++14内容,但部分高价值的C++14特性——例如泛型的lambda表达式(generic lambdas)——会比其他一些C++11特性更先问世。”

C++11和C++14特性并不是仅有的新增内容,VS2013的RTM版本(交付厂商版)中带有的VC++编译器还将包含C99标准的元素,例如:变量声明、_Bool、复合文字和指定初始化程序。对于从事许多跨平台项目的开发者来说,对C99的支持非常重要; Somasegar以FFmpeg能够在VS2013中编译为例子,展示了VS2013对C99的支持。

Stephan T.Lavaej是从事Visual C++库方面工作的微软高级开发者,他详细介绍了在VS2013预览版/RTM版及未来版本中值得期待的内容。并且Lavavej还表示在VS2013预览版中的标准模板库(STL)已经过重写,以利用这些C++11特性:显式转换、运算符、初始化器列表、作用域内枚举以及可变参数模板。在VS2013 RTM版本中,别名模板和删除的函数也将得到利用。STL的许多领域都将被重写,而且看起来这套实现不仅从C++技术中获益,还将得益于技术债务的移除。

这些改进相结合,改善了编译时并减少了编译器内存消耗。Lavaej提供了有关粗略基准测试的部分细节,但他声明编译器团队在2013年3月对编译器进行了重大修订,因此这些基准测试并不包含在这篇文章中。尽管如此,他认为可变参数模板的结合仍旧是一个意义重大的改进。

Bug修复、STL变更以及编译器特性都将作为VS2013的一部分发布。Lavavej解释道:考虑到复杂性因素以及为了在正式发布版中提供更好的测试资源,微软不会这些改进放在VS2012的一份升级中。Lavavej提供了一份内容丰富列表,列出了修复的各种类型的错误(基于C++和STL支持)。对那些努力想要知道VS2013中是否会包含某个特定补丁的人来说,这份列表信息量很大。

鉴于到大量对话都围绕着未来的Visual Studio升级(相对于主线的RTM版本)中将包含什么,寻求对C++11/14支持的开发者应该聚焦于VS2013 RTM版本中包含哪些内容。如果计划中包含一个后RTM的社区技术预览版(CTP,又称作阿尔法版本),那么开发者要想获得像诸如C++14泛型的lambda表达式这样的特性,需要做好购买VS2013+N的心理准备。

查看英文原文:Visual Studio Moves Closer to C99 and C++11/14 Support

评价本文

专业度
风格

您好,朋友!

您需要 注册一个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