C ++无法使用{...}进行初始化

时间:2013-11-19 21:14:44

标签: c++ visual-studio-2012 c++11

我正在使用VS2012,我想要包含以下地图:

#include<iostream>
#include<map>

std::map<int, int> code_map = {
  {65, 97},
  {66, 98},
  {67, 99},
  {68, 100},
  {69, 101},
  {70, 102},  
};

然而,IDE告诉我

IntelliSense:“{...}”的初始化对于类型为“”std :: map,std :: allocator&gt;&gt;“”

的对象无效

有人知道为什么会出现这种错误吗? 如果我使用VS2012,我想我正在使用C ++ 11,所以我认为这样可行。

感谢您的帮助。

3 个答案:

答案 0 :(得分:6)

Visual Studio 2012不支持初始化列表。有关它支持的C ++ 11功能,请参阅此内容:http://msdn.microsoft.com/en-us/library/vstudio/hh567368%28v=vs.120%29.aspx

答案 1 :(得分:1)

根据C ++ 11标准,您的代码完全没用。

我记得在某处读过Microsoft C ++编译器没有实现统一初始化和初始化列表Visual C++ Compiler November 2012 CTP的发布。也许您只需要升级编译器。

答案 2 :(得分:-1)

这里有一些添加地图的例子:

http://www.cplusplus.com/reference/map/map/map/

我自己没有在c ++中使用过地图,但是从其他人的说法来看,Visual Studio在添加该功能方面有点慢。

此链接可以帮助您以其他方式执行此操作。