VisualStudio2013Preview对C++11的支持

为期3天的微软Build 2013大会结束了,作为微软一年一度的开发者大会,微软也做足了功夫:很多产品(包括Windows 8.1和Visual Studio 2013 Preview)发布,channel9全程直播,可以到http://channel9.msdn.com/Events/Build/2013这边查看会议的所有内容。

虽然整个Build大会不像Google的I/O和Apple的WWDC那么热闹(Google和Apple的粉丝比较多),但我倒是一直非常期待,其中最大的期待在于Herb Sutter曾近承诺在2013年上半年提供一个更好支持C++11的VS版本。Herb Sutter(Visual C++首席架构师、C++标准委员会主席,可以说是当今C++领域影响最大的人物之一了)在Build大会第三天有个演讲,题目叫做“The Future of C++”,具体介绍了Visual Studio 2013 Preview对C++11的支持。在这个演讲之前,我已经把Visual Studio 2013 Preview安装起来,并尝试了一些在Visual Studio 2012中没有被支持的C++11特性,差不多得出了一个支持列表。

OK,还是看看Herb Sutter给出的官方roadamp吧:

这是我从Herb Sutter的演讲PPT中截的图,注意题目:根据Sutter的介绍,Visual Studio并没有把目标直接定为C++11,而是定位为C++14 wave,所谓C++14 wave,是与C++14(C++11之后的一个minor release,作为C++11的补充,已经于今年早些时候成型,其draft已经获得C++标准委员会通过)相关的一套标准,包括一些新的库。

VC++ 2013 Preview相比于VC++ 2012多出的C++11特性的在第一列,包括委托构造函数统一初始化列表可变模板参数等等,当然还有一些C++14的特性(cbegin和make_unique等等)。

VC++ 2013 Preview还没有支持,但是今年稍微时候的VC++ 2013 RTM版本,会加入非静态数据成员初始化、=default=deleteusing别名的支持,也就是说VC++2013 RTM基本上支持C++11的常用特性,但是并不包括constexpr(Sutter说暂时不支持constexpr的原因在于VC++没有AST树,现在正在添加AST,我感觉很奇怪,之前VC++是怎么完成编译过程的?)和noexcept。

剩下来的C++11特性部分在一个叫做Post-RTM OOB CTP开发版本中完成,还有的特性正在计划中,看来Herb Sutter的想法的确是直接瞄准C++14的,根据VS现在的发布频率,所有的这些特性我感觉在2015左右差不多都有了。

说说自己的看法吧,在对C++11的支持上,Visual C++相比于GCC和Clang来说,当然是落后一大截了,两个开源编译器都已经是feature complete了。但是VC++作为商业产品,当然有自己的考虑。微软对C++有自己的扩充( C++/CLI, C++/CX, C++ AMP),况且C++对于微软来说地位不像C#那么高,整个VC++的团队是比较小的(大家可以到http://channel9.msdn.com/Events/Build/2013/2-306这里看下面的评论),在这种情况下,我个人感觉能做到这样已经是很不容易了。我个人非常佩服Herb Sutter,一个人身兼这么多重要职位,各方面的事情都处理得很好,另外自己还经常写技术博客,很好奇他是怎么利用时间的!

在看整个视频的过程中,有个很深的感受:会场上好像没有太多对技术很感兴趣的开发者,气氛不够浓烈,不像一些专门的C++会议有那么好的气氛,比如Going NativeC++ and BeyondMeeting C++等等。对了,Herb Sutter在PPT最后说了,今年的Going Native将于9月4-6号进行,非常期待这次纯C++会议!

本文由豆约翰博客备份专家远程一键发布

VisualStudio2013Preview对C++11的支持(转载)的更多相关文章

  1. Visual Studio 2013 Preview对C++11的支持

    为期3天的微软Build 2013大会结束了,作为微软一年一度的开发者大会,微软也做足了功夫:很多产品(包括Windows 8.1和Visual Studio 2013 Preview)发布,chan ...

  2. 在YouCompleteMe+Syntastic中添加和取消对C++11的支持

    添加对c++11的支持: /.vimrc中添加: let g:syntastic_cpp_compiler = 'g++'  "change the compiler to g++ to s ...

  3. VS2010对C++11的支持列表(感觉大部分都不支持)

    c++11,就是之前的c++0x,已经成为了最新的c++标准.像咱这样天天用c++的,就赶紧follow一下.学习成果,放在这里,不说分享,至少自己增强下记忆. 首先,给出一些有用的链接. http: ...

  4. VS2010编译器工具cl对c++11标准支持情况測试

    本文探讨了VS2010编译工具cl对C++11标准的支持情况.提供了利用C++11新特性的两段代码来进行測试,并同g++ 4.9.3编译器的编译情况相对照.总的说来:VS2010的编译器工具cl部分支 ...

  5. Kafka 2.5.0发布——弃用对Scala2.11的支持

    近日Kafka发布了最新版本 2.5.0,增加了很多新功能: 下载地址:https://kafka.apache.org/downloads#2.5.0 对TLS 1.3的支持(默认为1.2) 引入用 ...

  6. Android NDK的C++11标准支持

    C++11于Android NDK它已被支持,本文介绍了如何NDK添加C++11支持标准. 在开源项目Cocos2d-x于,他已经加入C++11支持标准. 1.改动Application.mk文件,加 ...

  7. windows sever2003安装Wamp 2.5不成功——VC 11不支持Windows Server 2003和win XP?

    Windows Server 2003 安装Wamp 2.5不成功Wampserver 2.5 will not run on Windows XP 报错信息:C:\wamp\bin\apache\a ...

  8. jquery.validata1.11怎么支持metadata

    使用metadata方式这个需要使用jquery.metadata.js插件才可工作,通过在表单项中定义特殊的属性来指定验证规则 但是最新的jquery.validate 1.11没有内置metada ...

  9. mac上 sublime的配置,支持c++11且支持输入

    首先下载mac版本的 sublimetext3 下载链接: https://www.sublimetext.com/3 接着可以按照其他博客的方法来安装一些插件,便于我们的工作和学习 安装sublim ...

随机推荐

  1. LevelDB windows vs2013 c++编译和测试

    引用: (src1) :http://download.csdn.net/detail/flyfish1986/8881263(这里有下载地址) (src2) :http://blog.csdn.ne ...

  2. 02_Jquery_03_类选择器

    [简述] 类选择器就是通过类名(css类名)来查询元素! $(".myClass")就可以把所有包含了class="myClass"的元素查询出来 [index ...

  3. C#面向对象的学习笔记

    1.面向对象的3要素: 封装:将不需要显示的代码封装到一个方法中,只对外提供方法名,用户不需关心内部实现. 继承:子类继承父类,公用父类的代码,大大提高了代码的重用,贴近生活也符合人类的编程思想. 多 ...

  4. overflow:hidden真的失效了吗

    项目中常常有同学遇到这样的问题,现象是给元素设置了overflow:hidden,但超出容器的部分并没有被隐藏,难道是设置的hidden失效了吗? 其实看似不合理的现象背后都会有其合理的解释. 我们知 ...

  5. Emmet Documentation

    src:http://docs.emmet.io/cheat-sheet/ Emmet Documentation Syntax   Child: > nav>ul>li <n ...

  6. Web负载均衡的几种方式

    Web负载均衡的几种实现方式 摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用 ...

  7. Codeforces Round #321 div2

    好像前几场的题解忘记写了, Orz 状态太差, 平均出两题   都不好意思写了 , 连掉4场, 都要哭晕了. 很水的一场, 写完A B C就去睡了  D题其实不难, E题研究Ing(已用一种奇怪的姿势 ...

  8. Jersey的异常处理

    Jersey框架为我们提供了更为通用异常处理方式.通过实现ExceptionMapper接口并使用@Provider注解将其定义为一个Provider,可以实现通用的异常的面向切面处理,而非针对某一个 ...

  9. 在mesos上安装storm,并且执行wordcount测试程序

    mesos上安装storm 1.基本说明 如果只用一句话来描述storm的话,可能会是这样:分布式实时计算系统.按照storm作者的说法,storm对于实时计算的意义类似于hadoop对于批处理的意义 ...

  10. Android使用Dom解析xml

    一.理论准备                 二.上代码  <?xml version="1.0" encoding="utf-8" ?> < ...