2013-10-25 41 views
0

我現在有這樣的事情存儲升壓輸出::綁定在一個boost ::功能

void asomeMethod(int q) 
{ 
    std::cout << "Method with parameter " << q ; 
} 

int main() 
{ 
    boost::function<void(int)> parfunct; 
    parfunct = boost::bind(&asomeMethod,12); 
    parfunct; //Does not call asomeMethod ?? 
    return 0; 
} 

我要調用的函數PTR但該方法不會被調用?有關我可能會做錯什麼的建議?

回答

1

它必須是boost::function<void()>,因爲沒有剩餘的論點。

然後調用它像一個功能:在這種情況下

parfunct(); 
+0

我得到錯誤\t'錯誤C2064:術語不計算爲服用0 arguments' – Rajeshwar

+0

@Rajeshwar功能:對不起,固定。 'bind'中的無關參數被忽略,微妙的錯誤...''函數'類型需要是你調用的*,而不是'bind'的輸入。 –

+1

是的訣竅 - 在計時器後標記爲asnwer – Rajeshwar