C ++ map:'<'标记之前的预期初始值设定项

时间:2011-07-02 18:03:00

标签: c++ map compiler-errors

我在头文件中收到此错误:

  

错误:在'<'标记

之前的预期初始值设定项
class MyEntity;
typedef std::map<uint16,MyEntity*> myList_t;

我认为它没有看到地图包含,但在该头文件的顶部是:

#include <list>
#include <map>

在另一个头文件中:

typedef unsigned int               uint32;

有什么想法吗?

g ++(GCC)4.1.2 20080704(Red Hat 4.1.2-48)

2 个答案:

答案 0 :(得分:1)

有一个名为map的宏导致了冲突。

答案 1 :(得分:-1)

在您的实际代码(不是您的简化示例)中,您可能会在;之前的行末尾错过typedef。这通常意味着当我遇到那种神秘的错误时,我几乎可以通过在其上方放置另一个被破坏的typedef来重现您的消息:

q.cc:8: error: expected initializer before 'typedef'

我的第一个猜测是class MyEntity是一个完整的定义(不是前向声明)并且错过了;但是我得到了一个稍微不同的错误。