Visual Studio 2012中的C ++ 11功能


94

Visual Studio 2012的预览版本(VS2010之后的下一版本)是 现在可以使用

有谁知道它支持哪些新的C ++ 11功能?(我目前无法尝试)。


18
我再次感到失望。现在要弄清楚如何更流畅地使用GCC / GDB ...
GManNickG 2011年

3
GMan:我认为他们对新功能的采用非常令人惊讶,当然,考虑到它们来自哪里(例如VC 6.0和颤抖)……当然,GCC的支持令人惊讶,但是还有很多其他地方太缺乏了……
rubenvb

5
@rubenvn:出于好奇,海湾合作委员会缺少哪些地方?
HighCommander4 2011年

5
GCC并不缺乏对C ++ 11的支持,这是非常困难的。幽默地缺少VC11。还差得远。
987 S 2012年

9
@ HighCommander4:在什么地方缺少海湾合作委员会?调试工具。
user541686 2013年

Answers:


77

值得注意的是,Visual Studio 2010已经对早期的C ++ 11提供了相当多的支持。因此,总结在其他答案中已经链接的内容,这是Visual Studio 11中的新功能,而Visual Studio 11中不包含这些新功能:

2012年11月上旬,Microsoft 宣布Visual C ++编译器2012年11月CTP,它为Visual Studio 2012添加了更多的C ++ 11功能:


20
这实际上是非常令人失望的……我希望可变参数模板和统一初始化,GCC分别已经支持了两年半和一年半……
HighCommander4 2011年

@High统一初始化甚至不在规范中的功能列表上(甚至不会显示为“ No”)。也许还有别的名字吗?
Joel Coehoorn

2
我真的很喜欢我的类型安全打印和printf函数。我真的希望2011年能最终添加可变参数模板。缺少杂色也会影响emplace_backmake_shared。关于cl,是否有使其难以实施变异函数的问题?
deft_code 2011年

5
Herb Sutter在他的第二个Build会话(channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T)中说,他们尝试制作可变参数模板...尝试并尝试过,但对于该版本,它们并未及时完成。这也影响了他们可以做的其他事情。
凯特·格雷戈里

2
这是C ++ 11上不同编译器的良好比较。wiki.apache.org/stdcxx/C++0xCompilerSupport好的规则:不要在GCC中使用C ++ 11并期望它可以在VS2012中编译
克里斯·希尔

25

这里是新的Visual Studio版本功能的列表,并在这里是什么都编译器支持列表


2
不要太挑剔,但是您的第二个链接显示x0支持而不是11支持。
2011年

没错,但是它仍然提供了所有编译器及其实现方式的良好概述。
Drahakar 2011年

只是认为清楚一点会很好。我同意它的用处。
2011年

1
希望它是一个Wiki,有人通知可能要对其进行更新^。^
Drahakar 2011年

2
好吧,好像它已被最近更新(欢乐世界……):)
Drahakar

6

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

  • 他们说他们将实施可变参数模板作为优先事项,但没有。
  • 由于没有委派的构造函数,因此对于许多类,我们仍然必须手动声明move构造函数。
  • 没有继承的构造函数,对于某些代码,确实需要这样做
  • 没有统一的初始化,特别是没有初始化列表。将它们与g ++一起使用时,这很糟糕。
  • 仍然没有正确的线程本地存储。因此,您会停留boost::thread_specific_ptr一段时间。

所有其他尚未缺少的功能主要是您可以不用的东西。我在这里列出的就是使用VS10时每天都会困扰我的事情。太令人讨厌了,它们根本无法在编译器上工作。

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


6
他们确实将可变参数模板作为优先事项。这就是为什么当可变参数模板没有及时完成时,其他语言功能也没有完成的原因。(事实证明,除了臭鼬系列以外)
凯特·格雷戈里

4
?没有非静态数据成员初始化器,我真的活不下去。
Trass3r 2012年

可变参数模板的问题在于标准更改时间太晚,并且它们没有足够的时间完全重做该功能。
方舟坤

5

在2012年2月的GoingNative中,STL宣布,范围测试版将从VS11开始于VS11,预计将于2月29日发布。可以进行演讲录音。“ The Reveal”位于1小时38分钟的标记处。




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.