初始值设定项列表不适用于 Visual Studio 2012 中的矢量

Initializer list not working with vector in Visual Studio 2012?

本文关键字:2012 Studio Visual 适用于 不适用 列表      更新时间:2023-10-16

可能的重复项:
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" }; 

当我在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"};
}

VS2012 不支持初始值设定项列表还是我只是误解了什么?

谢谢!

Visual Studio 2012 不支持初始值设定项列表。

好吧,直到 2012 年 11 月的 CTP。现在它做到了,至少在alpha状态下。当然,这段代码仍然无法在其中工作,因为他们仍然将初始值设定项列表放入标准库本身。