我在头文件中收到此错误:
错误:在'<'标记
之前的预期初始值设定项
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)
答案 0 :(得分:1)
有一个名为map的宏导致了冲突。
答案 1 :(得分:-1)
在您的实际代码(不是您的简化示例)中,您可能会在;
之前的行末尾错过typedef
。这通常意味着当我遇到那种神秘的错误时,我几乎可以通过在其上方放置另一个被破坏的typedef
来重现您的消息:
q.cc:8: error: expected initializer before 'typedef'
我的第一个猜测是class MyEntity
是一个完整的定义(不是前向声明)并且错过了;
但是我得到了一个稍微不同的错误。