C ++ map - expression必须是一个整型常量表达式

时间:2015-02-01 13:42:06

标签: c++ visual-studio dictionary stl std

#include <map>
#include <string>

std::map<std::string, int> foo;
foo["bar"] = 1;

为什么我在visual studio 12中得到错误“表达式必须是一个整数常量表达式”?

我无法解决这个问题......

1 个答案:

答案 0 :(得分:3)

您需要将代码放在函数中。

#include <map>
#include <string>

void xyz()
{
   std::map<std::string, int> foo;
   foo["bar"] = 1;
}

我验证了VS 2013有一个问题,但它在函数内部时有效。正如其他人所指出的那样,大多数陈述都不允许在函数之外。