Search the Community
Showing results for tags 'reference'.
-
Hi, I want to pass a sc_signal (the reference of one) of any type to a class as a CTOR-argument. Since i found out, that the &-Operator of the class sc_signal<T> is overloaded, so i don't get the reference of an sc_signal<T> object but instead i get a reference to an Object of type T. How am i supposed to pass an sc_signal<T> to a function or a class? Example-Code: #include <systemc.h> template<typename T> class TInput{ public: typedef sc_signal<T> &TMember; TInput(TMember member):member(member){} // some functions which use member private: TMember member; }; int sc_main(int argc, char** argv){ sc_signal<sc_uint<12> > signal1("signal1"); TInput<sc_uint<12> > input(signal1); // here is the problem, because &signal1 does not return return 0; // its own reference but a const reference to its member // so the compiler is telling me, that i want to call a function which does not exist } here is a link to sc_signal class of systemc lysium documentation http://www.iro.umontreal.ca/~lablasso/docs/SystemC2.0.1/html/classsc__signal.html especially this function operator const T & () const its implementation (of sc_logic) can be found under following link: http://www.lysium.de/docs/systemc-2.2/docs/html/sc__signal_8h-source.html 00132 operator const T& () const 00133 { return read(); } 00113 // read the current value 00114 virtual const T& read() const 00115 { return m_cur_val; } 00648 sc_dt::sc_logic m_cur_val; // current value of object. I hope there is any solution to my problem and thanks in advance.