ここで少し助けが必要です: 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....
......
};
名前空間の構文が確かに有効であるため、なぜこれが起こるのか本当にわかりません。そのメッセージを取り除くための修正があり、これは "using tlm_utils::simple_initiator_socket;" の代わりです。「tlm_utils::simple_initiator_socket initiator_socket;」と入力するだけです。上記のクラスの本体で。ただし、唯一の変更点がコンパイラのバージョンであることを考えると、上記のコードが機能しない理由はわかりません。