我曾在Ubuntu上编写了一些代码,现在我正在尝试在Windows 7 (MS VS 2010)上进行编译。
vector<float> tmp;
....
tmp = {3.0,4.5,9.4};
这让我遇到了语法错误
error C2143: syntax error : missing ';' before '{'
是因为Visual Studio不支持这个特性吗?还是我需要在属性中启用某些开关?我的"Platform Toolset"属性设置为"v100"。
谢谢。
我曾在Ubuntu上编写了一些代码,现在我正在尝试在Windows 7 (MS VS 2010)上进行编译。
vector<float> tmp;
....
tmp = {3.0,4.5,9.4};
这让我遇到了语法错误
error C2143: syntax error : missing ';' before '{'
是因为Visual Studio不支持这个特性吗?还是我需要在属性中启用某些开关?我的"Platform Toolset"属性设置为"v100"。
谢谢。
在Visual Studio 2010 C++编译器上,默认启用了C++0x功能。例如使用lambdas,auto
等不需要任何额外的开关。如果您遇到错误,很可能是因为它不被支持。
编辑
根据此MSDN文章,初始化列表不是2010年支持的六个功能之一。
Visual Studio 2010中的Visual C++编译器启用了六个C++0x核心语言功能:lambda表达式、auto关键字、rvalue引用、static_assert、nullptr和decltype。
vector<int> tmp = vector<int> {...}; // calls constructor, initializes then assigns
或者
std::initializer_list<int> iniList = {1,2,3,4,5,6};
但不包括
std::vector<int> tmp;
tmp = {...}; // calls assignment operator