C++ C++;Visual Studio 2012中的11个功能

C++ C++;Visual Studio 2012中的11个功能,c++,visual-c++,c++11,visual-c++-2012,C++,Visual C++,C++11,Visual C++ 2012,Visual Studio 2012(VS2010之后的下一个版本)的预览版本为 有人知道它支持哪些新的C++11特性吗?(我现在还不能试用。)是新visual studio版本的功能列表,也是所有编译器支持的功能列表。值得注意的是,visual studio 2010已经有了相当多的早期C++11支持。因此,为了总结其他答案中已经链接到的内容,下面是Visual Studio 11中不属于Visual Studio 2010的新内容: 从2.0对的右值引用 lambdas从1.0升级到1.0

Visual Studio 2012(VS2010之后的下一个版本)的预览版本为


有人知道它支持哪些新的C++11特性吗?(我现在还不能试用。)

是新visual studio版本的功能列表,也是所有编译器支持的功能列表。值得注意的是,visual studio 2010已经有了相当多的早期C++11支持。因此,为了总结其他答案中已经链接到的内容,下面是Visual Studio 11中不属于Visual Studio 2010的新内容:

  • 从2.0对的右值引用
  • lambdas从1.0升级到1.0
  • 将类型从1.0改为1.0(在开发人员预览中尚不可用)
  • 改进了,但仍然不完整
2012年11月初,微软在Visual Studio 2012中添加了更多C++11功能:

  • 函数模板默认参数
    • 有一个列表。给我印象最深的是仍然缺少的功能:

      • 他们会优先实施可变模板,但他们没有
      • 对于许多类,我们仍然必须手工声明move构造函数,因为没有委托构造函数
      • 继承构造函数不存在,有些代码确实需要这样做
      • 没有统一的初始化,特别是没有初始化列表。当您将它们与g++一起使用时,这很糟糕
      • 仍然没有正确的线程本地存储。因此,您需要使用
        boost::thread\u specific\u ptr
        一段时间
      所有其他还没有的功能主要是你可以不用的东西。我在这里列出的正是使用VS10时每天困扰我的问题。他们根本就没有在编译器上工作,这真是太令人恼火了


      编辑:我还要补充的是,
      emplace\u back
      (标准库容器的一个重要功能)没有正确实现。

      试试Herb Sutter的这段视频。这个家伙不需要介绍



      在2012年2月的GoingNative期间,STL宣布从2月29日的beta版开始,将在VS11中推出。有一个电话号码。“The Reveal”在1小时38分钟后发布。

      现在有一个。

      不要太挑剔,但您的第二个链接显示了x0支持而不是11支持。您是对的,但它仍然提供了所有编译器及其实现的良好概述。我想清楚一点会很好。我同意它很有用。希望它是一个维基,有人告知可能会想更新它。^好吧,它似乎最近已经更新了(joy to the world…),我再次感到失望。现在来看看如何更流利地使用GCC/GDB……GMan:我认为他们对新功能的理解相当惊人,当然是考虑到它们的来源(想想VC6.0和shudder)。。。当然,GCC的支持是惊人的,但也有很多其他地方也缺少它……Ruuvnn:只是出于好奇,在GCC缺少什么地方?GCC不缺少对C++ 11的支持,它是相当多的。VC11缺乏幽默感。它甚至都不接近。@HighCommander4:GCC缺少哪些地方?调试工具。这实际上很令人失望。。。我希望变量模板和统一初始化,GCC已经分别支持了两年半和一年半…@高统一初始化甚至不在规范中的功能列表中(甚至没有显示“否”)。可能还有其他名称吗?我真的很喜欢我的类型安全打印和printf函数。我真的希望2011年能最终添加可变模板。缺少变量也会影响
      安置回
      共享
      。cl中有什么东西使得实现变量变得特别困难吗?Herb Sutter在他的第二次构建会话()中说,他们尝试使用变量模板。。。尝试了又尝试,但没有及时完成此版本。这也影响了他们可以做的其他事情。好的规则:不要在GCC中使用C++11,并期望它在VS2012中编译。他们确实优先考虑可变模板。这就是为什么,当可变模板没有及时完成时,其他语言功能也没有完成。(事实证明,臭鼬工厂系列除外。)?没有非静态数据成员初始值设定项,我真的无法生存。可变模板的问题是标准更改太晚,他们没有足够的时间完全重做该功能。