struct A
{
A(int v):value(v){}
int someFun(){return value;}
int someOtherFun(int v=0){return v+value;}
int value;
};
int main()
{
boost::shared_ptr<A> a(new A(42));
//boost::function<int()> b1(bind(&A::someOtherFun,a,_1)); //Error
boost::function<int()> b2(bind(&A::someFun,a));
b2();
return 0;
}
bind(&A::someOtherFun,a)();
编译错误失败:错误:非静态成员函数的无效使用
如何绑定类似于 someFun 的 someOtherFun?即,它们应该绑定到相同的 boost::function 类型。