当使用g++4.5.2进行编译时,对类的引用是不明确的
Reference to class is ambiguous when compiling with g++4.5.2
我需要一些帮助:当使用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_inititor_socket initiator_sockett;"。然而,我不明白为什么上面的代码不起作用,因为唯一的变化是编译器版本。
尝试使用显式调用:
class HvEcu : public sc_module {
tlm_utils::simple_initiator_socket<HvEcu> initiator_socket;
今天的教训:了解编译器的最新变化,并使用最新的稳定版本。否则,您将编写旧的错误代码;并遇到编译器的其他副作用。
相关文章:
- Visual C++(VS2017)中用户定义的转换不明确
- 对"列表"的引用不明确,包括头文件
- 为什么调用具有通用或 r 值引用的重载覆盖函数是不明确的?
- 是否有一种方法可以将C 类成员引用到向量而不明确添加它们
- 由于引用,重载的调用是不明确的
- 关于解引用运算符是否在表达式中产生对象对值的定义不明确
- 当使用g++4.5.2进行编译时,对类的引用是不明确的
- 使用memset函数时,对数组的引用是不明确的错误
- 指定不明确的引用
- 构造函数基本(对距离的引用不明确)
- 错误:在armadillo和oracle occi兼容性问题中,对"剑"的引用不明确
- 引用不明确
- Visual C++编译器为不明确的符号提供了错误的行引用
- 带有重载r值引用函数的调用不明确
- 对Cocos2d-x大小类型的引用不明确
- Cocos2dx导入QuartzCore框架时出现(对Point、Rect、Size的引用不明确)错误
- 通过不明确的转换运算符进行引用绑定
- 到引用的转换不明确
- 升压误差:对'detail'的引用不明确
- 不明确的引用和命名空间(来自两个外部库的定义冲突)