我在标题中有一个类:
class Communicator {
public:
std::map<std::string,obj::obj_version<obj::tkt_metadata>*> local_objects;
}
当我编译时,我可以稍后在代码中创建一个 Communicator 并正常使用地图,没有问题。
但是,一旦我在类声明之后放置:
extern Communicator comm;
并添加:
Communicator comm;
对于标头的实现文件,我得到“错误:'obj' 未在此范围内声明”等,其中obj
包含 obj_version 和 tkt_metadata 的命名空间(并且在包含我的通信器标头之前)。
这里发生了什么,我能做些什么来让它正确编译吗?谢谢!