SC_METHOD 在自定义构造函数中

SC_METHOD in custom constructor

在我的自定义构造函数中,我想使用 SC_METHOD:

class host_command : public sc_module, public bus_if {
public:
//  sc_out<packet_type> out_packet;
    sc_buffer<packet_type> out_packet;

    host_command(char *name, unsigned int limit) : sc_module(name) {
        SC_METHOD(write);
        sensitive << out_packet;
    }

private:
    void write(packet_type data) override {

    }
}

但是如果我编译它,我会得到以下错误:

error: ‘SC_CURRENT_USER_MODULE’ has not been declared
         SC_METHOD(write);
         ^

我如何声明 SC_CURRENT_USER_MODULE 或者我根本不能在自定义构造函数中使用 SC_METHOD

如果是这样,我怎样才能实现相同的功能?

不使用SC_MODULE宏声明模块时,必须使用SC_HAS_PROCESS宏指示SC_THREADs和SC_METHODs的当前模块:

SC_HAS_PROCESS(host_command);
host_command(char *name, unsigned int limit) : sc_module(name) {
    SC_METHOD(write);
    sensitive << out_packet;
}