繁体   English   中英

指向成员函数的指针类型需要一个右值

[英]pointer-to-member-function type requires an rvalue

产生以下代码的错误是什么问题?

struct foo
{
    void call(void (foo::*ptr)()) &&
    {
        (*this.*ptr)();
    }
};

如何修复此错误?

由于成员指针具有 rvalue 限定符,因此必须告诉编译器*this将通过在其上使用std::move被视为右值:

(std::move(*this).*ptr)();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM