我需要一些帮助:当使用g ++ 4.1构建我的代码时,没有关于“对类的引用含糊不清”的错误。只有在使用g ++ 4.5.2编译相同的代码时才会发生这种情况,这里是代码片段:
#include "tlm_utils/simple_initiator_socket.h"
using tlm_utils::simple_initiator_socket;
class HvEcu : public sc_module {
public:
......
simple_initiator_socket<HvEcu> initiator_socket;
//object instantiated here, also problem happend here....
......
};
我真的不确定为什么会发生这种情况,因为命名空间的语法肯定是有效的。 有一个修复来摆脱该消息,而不是“使用tlm_utils :: simple_initiator_socket;”只需输入“tlm_utils :: simple_initiator_socket initiator_socket;”在上面所示的类中。但是我不明白为什么上面的代码不起作用,因为唯一的变化是编译器版本。
答案 0 :(得分:0)
尝试使用显式调用:
class HvEcu : public sc_module {
tlm_utils::simple_initiator_socket<HvEcu> initiator_socket;
每日课程:及时了解编译器更改并使用最新的稳定版本。否则,你最终会写出错误的旧代码;并遇到编译器的其他副作用。