小编toa*_*fan的帖子

如何使用智能指针对象执行成员函数指针?

我正在尝试member-function使用智能指针实例执行类的。该函数的地址通过值传递,我想通过相应类的智能指针实例调用该值。

我已经试过了:

(registerList.*setRegister)();
Run Code Online (Sandbox Code Playgroud)

但是它出错了:

no match for ‘operator->*
Run Code Online (Sandbox Code Playgroud)

Register 类成员函数:

uint16_t Registers::getSP()
{
    return this->sp;
}
Run Code Online (Sandbox Code Playgroud)

代码段:

std::unique_ptr<Registers> registerList;

SetRegisteropcodeLdWordRegister(&Registers::getSP)

void opcodeLdWordRegister(uint16_t (*Registers::setRegister)()) 
{
        (registerList.*setRegister)();
}
Run Code Online (Sandbox Code Playgroud)

c++ member-function-pointers smart-pointers unique-ptr c++11

6
推荐指数
1
解决办法
129
查看次数