标签: c++ c++11 rvalue-reference boost-variant
错误的问题是什么,产生以下代码?
struct foo { void call(void (foo::*ptr)()) && { (*this.*ptr)(); } };
如何解决此错误?
答案 0 :(得分:1)
由于成员指针具有rvalue限定符,因此必须告诉编译器*this将被std::move视为右值:
*this
std::move
(std::move(*this).*ptr)();