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