【问题标题】:C++11 features in Visual Studio 2012Visual Studio 2012 中的 C++11 功能
【发布时间】:2011-11-17 07:41:55
【问题描述】:

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

有人知道它支持哪些新的 C++11 功能吗? (我暂时无法尝试)。

【问题讨论】:

  • 我又一次失望了。现在来弄清楚如何更流畅地使用 GCC/GDB...
  • GMan:我认为他们对新功能的吸收非常惊人,当然考虑到它们的来源(想想 VC 6.0 和不寒而栗)......当然,GCC 的支持令人惊讶,但是那里它也缺少很多其他地方...
  • @rubenvn:只是出于好奇,GCC在哪些地方缺乏?
  • GCC 并不缺乏对 C++ 11 的支持,它几乎是无与伦比的。 VC11 缺乏幽默感。它甚至没有接近。
  • @HighCommander4:GCC 有哪些不足之处?调试工具。

标签: c++ visual-c++ c++11 visual-c++-2012


【解决方案1】:

值得注意的是,Visual Studio 2010 已经有相当多的早期 C++11 支持。因此,总结一下其他答案中已经链接的内容,以下是 Visual Studio 11 中不属于 Visual Studio 2010 的新内容:

2012 年 11 月上旬,Microsoft announcedVisual C++ Compiler November 2012 CTP 为 Visual Studio 2012 添加了更多 C++11 功能:

【讨论】:

  • 这实际上很令人失望...我希望 GCC 已经分别支持了两年半和一年半的可变参数模板和统一初始化...
  • @High 统一初始化甚至不在规范中的功能列表中(甚至没有显示为“否”)。可能还有别的名字吗?
  • 我真的很喜欢我的类型安全打印和 printf 功能。我真的希望 2011 年最终会添加可变参数模板。缺少可变参数也会影响emplace_backmake_shared。 cl 是否有什么东西让实现可变参数变得特别困难?
  • Herb Sutter 在他的第二次构建会话 (channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T) 中表示,他们尝试制作可变参数模板……尝试了又尝试,但没有及时完成此版本。这也影响了他们可以做的其他事情。
  • 这里是 C++11 上不同编译器的一个很好的比较。 wiki.apache.org/stdcxx/C++0xCompilerSupport 好的规则:不要在 GCC 中使用 C++11 并期望它在 VS2012 中编译
【解决方案2】:

Here 是新版 Visual Studio 的功能列表,here 是所有编译器支持的列表

【讨论】:

  • 不要太挑剔,但您的第二个链接显示 x0 支持而不是 11 支持。
  • 你是对的,但它仍然很好地概述了所有编译器及其实现的内容。
  • 只是觉得清楚一点就好了。我同意它很有用。
  • 希望它是一个 wiki,知道的人可能想要更新它 ^.^
  • 嗯,好像最近更新了(全世界都高兴...):)
【解决方案3】:

有一个列表there。最让我印象深刻的是仍然缺少的功能

  • They said 他们会优先实现可变参数模板,但他们没有。
  • 我们仍然需要为许多类手动声明移动构造函数,因为没有委托构造函数。
  • 不存在继承构造函数,某些代码确实需要这样做
  • 没有统一的初始化,特别是没有初始化列表。当您将它们与 g++ 一起使用时,这很糟糕。
  • 仍然没有正确的线程本地存储。因此,您暂时无法使用boost::thread_specific_ptr

目前还缺少的所有其他功能主要是您可以没有的东西。我在这里列出的正是使用 VS10 时每天困扰我的事情。太烦人了,他们根本没有在编译器上工作。

编辑:我还要补充一点,emplace_back(标准库容器的一项重要功能)没有正确实现。

【讨论】:

  • 他们确实将可变参数模板作为优先事项。这就是为什么当可变参数模板没有及时完成时,其他语言功能也没有完成的原因。 (事实证明,臭鼬工厂除外。)
  • ?没有非静态数据成员初始化器,我真的活不下去。
  • 可变参数模板的问题是标准更改得太晚,他们没有足够的时间完全重做该功能。
【解决方案4】:

在 2012 年 2 月的 GoingNative 期间,STL 宣布 range-for 将在 VS11 中从测试版开始,预计 2 月 29 日。 recording of the talk 可用。 《揭秘》的时长为 1 小时 38 分钟。

【讨论】:

    【解决方案5】:
    【解决方案6】:
    【解决方案7】:

    试试 Herb Sutter 的这个视频。这家伙不用介绍!!!

    http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      相关资源
      最近更新 更多