初始化程序列表在Visual Studio 2012中无法使用向量?

Pol*_*878 25 c++ visual-c++ c++11 visual-studio-2012

可能重复:
Visual Studio 2012中的C++ 11功能

所以我今天通过维基百科阅读了C++ 11初始化列表,并看到C++ 11支持标准容器的以下语法:

std::vector<std::string> v = { "xyzzy", "plugh", "abracadabra" };
std::vector<std::string> v({ "xyzzy", "plugh", "abracadabra" });
std::vector<std::string> v{ "xyzzy", "plugh", "abracadabra" }; 
Run Code Online (Sandbox Code Playgroud)

当我在Visual Studio 2012中尝试以下操作时,我收到编译错误 C2552: 'vecs' : non-aggregates cannot be initialized with initializer list

这是我的代码:

#include <vector>

using namespace std;

int main() {
    vector<string> vecs = {"h", "g", "e"};
}
Run Code Online (Sandbox Code Playgroud)

VS2012不支持初始化列表,还是我只是误解了什么?

谢谢!

Nic*_*las 38

Visual Studio 2012不支持初始化列表.

好吧,它直到2012年11月的CTP.现在它确实如此,至少在alpha状态下.当然,这段代码仍无法使用,因为它们仍然将初始化列表放入标准库本身.

  • 感谢Nicol,这是一个相当不错的表,描述了VS2012支持的功能列表:http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx (2认同)