如何在Visual Studio中启用C++ 0x功能?[初始化程序列表支持]

blu*_*kin 28 visual-studio-2010 c++11

我有一些我在Ubuntu上开发的代码,现在我试图在Windows 7上编译它(MS VS 2010).

vector<float> tmp;
....
tmp = {3.0,4.5,9.4};
Run Code Online (Sandbox Code Playgroud)

这给了我语法错误

error C2143: syntax error : missing ';' before '{'
Run Code Online (Sandbox Code Playgroud)

这是因为Visual Studio不支持此功能吗?或者我应该在属性中启用一些开关.我将"Platform Toolset"属性设置为"v100".

谢谢.

Jar*_*Par 33

默认情况下,Visual Studio 2010 C++编译器上启用了C++ 0x功能.它不需要额外的开关,例如使用lambdas auto等等......如果你得到那个错误,那是因为在所有情况下它都不受支持.

编辑

根据此MSDN文章,初始化列表不是2010年支持的6个功能之一

Visual Studio 2010中的Visual C++编译器支持六种C++ 0x核心语言功能:lambda表达式,auto关键字,rvalue引用,static_assert,nullptr和decltype


Fox*_*x32 16

Visual Studio 2010不支持初始化列表.看看这里在Visual Studio 2010支持C++ 0x特性的

Visual Studio 2012也不支持它们.您可以在此处此处找到Visual Studio 2012/VS11中实现的C++ 11功能.

初始化程序列表的第一个实现可在Visual C++编译器2012年11月CTP中找到.

初始化程序列表的第一个真正版本将在Visual Studio 2013中.