为神秘的解密道歉。
我希望创建一个以下类型的仿函数:
const boost::function<bool ()>& functor
请考虑上课:
#include <boost/function.hpp>
class X {
public:
bool foo();
void bar() ;
};
void X::bar() {
const boost::function<bool (X *)>& f = &X::foo;
}
bool X::foo() {
std::cout << __func__ << " " << __LINE__ << " " << std::endl;
return true;
}
我有:
const boost::function<bool (X *)>& f = &X::foo;
我可以拥有像
这样的东西吗?const boost::function<bool ()>& f = &X::foo;
使用boost :: bind还是别的什么?
由于
答案 0 :(得分:4)
必须使用对象调用非静态成员函数。因此,您必须始终隐式地将this
指针作为其参数传递。
您可以使用boost::bind
完成此操作:
const boost::function<bool()>& f = boost::bind(&X::foo, this);