问题
#include <map>
#include <string>
std::map<std::string, int> foo;
foo["bar"] = 1;
Why do I get the error "expression must be an integral constant expression" in visual studio 12?
I can't work this one out...
回答1:
You need to place the code inside a function.
#include <map>
#include <string>
void xyz()
{
std::map<std::string, int> foo;
foo["bar"] = 1;
}
I verified VS 2013 has a problem otherwise, but it works when inside a function. As others have noted, most statements aren't allowed outside of a function.
来源:https://stackoverflow.com/questions/28263339/c-map-expression-must-be-an-integral-constant-expression