3
class A {
public:
std::function<void(int)> f_;
void print_num(int i) {
cout << i;
}
void setFuntion(std::function<void(int)> f) {
f_=f;
}
void run() {
setFunction(print_num);
}
};
這不起作用。我得到note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘std::function<void(int)>’
和其他錯誤。將std :: function分配給成員函數
如果我把print_num
的定義放在類之外。一切正常。我試着加入&A::
,A::
和this.
沒有什麼幫助。
EHH,我想的std ::功能應該讓事情變得更加容易: - ( –
'setFunction([this](int i){this-> print_num(i);});'also worked –
使用'[this]'製作對象的副本,所以你可能想'[&this] ,或者只是'[&]'。 – wjl