Hi Jerome,
>* The various bind() and operator() methods are not declared virtual.
>This means that when someone wants to overload these methods in a user
>class derived from
>sc_port or sc_export, he has to declare and provide implementation for
>all the variants.
I'm afraid that your proposal to make bind and operator() virtual will not
fix that! If you want to override
one version of these methods and still access the inherited overloadeds,
you can add a using declaration
to the derived class (e.g. using port_base_class::bind;), you do not need
to change the LRM.
The bind operator takes a templated port argument (rather than using
sc_port_base) because the port
is used to access the interface methods which are not present in the
generic sc_port_base class: You
cannot call the interface methods using a sc_port_base reference (without
using a dynamic cast) so I
don't think this proposal is realistic either.
Regards,
Dave
-- Dr David Long Senior Consultant Doulos - Developing Design Know-how VHDL * Verilog * SystemVerilog * SystemC * PSL * Perl * Tcl/Tk * Project Services Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24 1AW, UK Tel: + 44 (0)1425 471223 Email: david.long@doulos.com Fax: +44 (0)1425 471573 http://www.doulos.com -------------------------------------------------------------------------------- This message may contain personal views which are not the views of Doulos, unless specifically stated. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Wed Mar 3 05:45:09 2010
This archive was generated by hypermail 2.1.8 : Wed Mar 03 2010 - 05:45:11 PST