C++ 在VS12中将初始值设定项列表作为向量的函数参数传递时出现语法错误
我有一个函数,它接受向量作为输入参数:C++ 在VS12中将初始值设定项列表作为向量的函数参数传递时出现语法错误,c++,visual-studio-2012,vector,C++,Visual Studio 2012,Vector,我有一个函数,它接受向量作为输入参数: void expandVector(std::vector<int> inputVector, std::vector<int>& outputVector); 当我检查时,它列出了带有初始值设定项列表的构造函数,而且,示例还显示了正在使用它 vector<int> v8{ { 1, 2, 3, 4 } }; 向量v8{{{1,2,3,4}; 即使我没有显式地声明和命名向量(如示例中的v8),我是否仍然能够
void expandVector(std::vector<int> inputVector, std::vector<int>& outputVector);
当我检查时,它列出了带有初始值设定项列表的构造函数,而且,示例还显示了正在使用它
vector<int> v8{ { 1, 2, 3, 4 } };
向量v8{{{1,2,3,4};
即使我没有显式地声明和命名向量(如示例中的
v8
),我是否仍然能够将初始值设定项列表传递给期望向量的函数?回答我自己的问题,感谢Columbo为我指明了正确的方向
Visual Studio 2012不支持初始值设定项列表,请参见MSDN上的
另外,我最初提到的vector::vector
页面是针对VS 2013的。当我选择时,我发现这个构造函数不可用
解决办法将是更换
expandVector({1337}, expandedVector);
与
expandVector(std::vector(11337),expandedVector);
VS 2012是否支持初始值设定项列表?似乎不是这样。啊。。。我忘了在MSDN文档中将我的版本更改为2012。确实没有带初始值设定项列表的构造函数…这不是我的意思。我指的是对语言特性的支持,即能够使用{
和}
@Columbo:true初始化实体,但是如果我有正确的版本,我会看到构造函数不可用。。。我想我必须将代码简化为Micro$oft级别。vs2013是vs12,vs2012是vs11:P,您应该升级!我最近刚刚升级了所有缺少的c++11特性
vector<int> v8{ { 1, 2, 3, 4 } };
expandVector({1337}, expandedVector);
expandVector(std::vector<int>(1, 1337), expandedVector);