我試圖將成員函數作爲參數傳遞給模板函數。我已經閱讀了Stackoverflow中有關將成員函數作爲參數傳遞給其他函數的所有線程。但是,不知何故,我不明白這個簡單的東西的工作:將成員函數作爲回調函數傳遞給模板函數
template <typename T>
T Class::registerCallback(std::function<T()> callback) {
// do something
}
bool Class::member() {
return true;
}
void Class::method() {
registerCallback(std::bind(&Class::member, this, std::placeholders::_1));
}
我收到的錯誤消息是:
no matching member function for call to 'registerCallback'
我試圖解決這個問題很長一段時間。如果有人能指出我出了什麼問題,我將非常感激。
是'Class'模板或者它只是有一個模板成員函數? – 2015-04-01 05:45:02
只是一個模板成員函數。 – einstein 2015-04-01 05:47:15
@JamesAdkison我解決了它只是提供了類型registerCallback(std :: bind(&Class :: member,this,std :: placeholders :: _ 1)); –
einstein
2015-04-01 05:52:45