visual studio提供未声明的标识符错误

时间:2016-07-21 16:01:54

标签: c++

我的项目工作正常,然后当我在另一个头文件中更改某些内容时,我突然遇到了这个错误:

错误C2065'地图':未声明的标识符

虽然我做了#include <map>

Game.h的一部分:

#include <map>

class Game{

    Game();

}

在Game.cpp中给出错误的行:

_results.insert(map<std::string, int>::value_type(_players[i]->getUsername(), 0));

此代码行运行正常!直到某一点

1 个答案:

答案 0 :(得分:0)

我的猜测是,在某一点上,您在全局命名空间中有一个名为map的类,它提供了类似于std::map的接口,或者更可能的是,您依赖于{{ 1}}指令已被删除(无论是否无意;也许其他人在你正在使用的标题中有一个,但当他们意识到这是一个坏主意时删除它)。在包含该行的代码块中放置using namespace std;的using指令或std的using声明,或者在想要使用C ++标准库std::map时显式使用std::map map 1}}类;推荐后者,因为它使代码更清晰,更清晰。

如果您之前使用的是自定义map类,请检查其标题是否仍为#include d,并且它不会遇到相同的命名空间问题。