C++映射:预期在 ‘<’ 之前初始化代币
我在头文件中收到此错误:
错误:预期的初始化程序位于“<”之前令牌
class MyEntity;
typedef std::map<uint16,MyEntity*> myList_t;
我认为它没有看到地图包含,但在该头文件的顶部是:
#include <list>
#include <map>
在另一个头文件中:
typedef unsigned int uint32;
有什么想法吗?
g++ (GCC) 4.1.2 20080704(红帽 4.1.2-48)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有一个名为 map 的宏导致了冲突。
There was a macro named map that was causing a conflict.
在您的实际代码(不是简化的示例)中,您可能在
typedef
之前的行尾缺少;
。这通常就是当我遇到这种神秘错误时的含义,并且我几乎可以通过在其上方放置另一个被低估的typedef
来重现您的消息:我的第一个猜测是
class MyEntity
是一个完整的定义(不是前向声明)并且缺少;
但我得到了一个略有不同的错误。In your actual code (not your simplified example) you are probably missing a
;
from the end of the line before thetypedef
. This is usually what it means when I get that kind of cryptic error and I can almost reproduce your message by putting another underminatedtypedef
above it:My first guess was that
class MyEntity
was a full definition (not a forward declaration) and was missing the;
but I get a slightly different error for that.