Jump to content

Recommended Posts

Posted

Hello,

I have two classes in two different files:

 

class B : public uvm_component

{

...

do_something();

...

}

 

class A : public uvm_component

{

....

SetCallback(boost::bind(&B::do_something, *pB, _1, _2));

...

}

 

When I try to compile this, I have this error:

 

"/home/cadence/UVM_ML-1.3.4.3/ml/frameworks/uvm/sc/base/uvm_component.h", line 60: error:
          "sc_core::sc_module::sc_module(const sc_core::sc_module &)"
          (declared at line 398 of
          "$CDSROOT/tools/systemc/include_pch/64bi
          t/sysc/kernel/sc_module.h") is inaccessible
  class uvm_component : public sc_core::sc_module, public uvm_typed {
                               ^
          detected during:
            implicit generation of "uvm::uvm_component::uvm_component(const
                      uvm::uvm_component &)" at line 14 of
            implicit generation of "collector::collector(const collector &)"
                      at line 14 of

 

Any idea?

Thanks

 

Posted

Hi,

 

It seems that you should pass pB as the actual argument (not *pB):

 

SetCallback(boost::bind(&B::do_something, *pB, _1, _2));

 

 

It think it should work as "this" in do_something() (i.e. pointer not a reference).

 

Regards,

Vitaly

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...