1
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)();
失敗,編譯錯誤:錯誤:無效使用非靜態成員函數的boost :: bind爲成員函數的默認值?
如何綁定someOtherFun類似someFun?即它們應該綁定到相同的boost :: function類型。
沒有工作。仍然是同樣的錯誤。 – balki
@balki - 我忘了爲參數添加佔位符。請參閱編輯的版本 – Attila
是的,這是有效的。但是我想要做的是這樣的東西 'boost :: function b1(bind(&A :: someOtherFun,a,_1)); boost :: function b2(bind(&A :: someFun,a)) ;' –
balki