在不将 class 作为参数的情况下在成员函数内创建仿函数
Creation of a functor inside a member function without taking the class as a argument
对加密解密表示歉意。
我希望创建以下类型的仿函数:
const boost::function<bool ()>& functor
请考虑 class:
#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 或其他 ?
谢谢
必须使用对象调用非静态成员函数。因此,您必须始终隐式传递 this
指针作为其参数。
您可以通过 boost::bind
完成此操作:
const boost::function<bool()>& f = boost::bind(&X::foo, this);
对加密解密表示歉意。
我希望创建以下类型的仿函数:
const boost::function<bool ()>& functor
请考虑 class:
#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 或其他 ?
谢谢
必须使用对象调用非静态成员函数。因此,您必须始终隐式传递 this
指针作为其参数。
您可以通过 boost::bind
完成此操作:
const boost::function<bool()>& f = boost::bind(&X::foo, this);