只需查询哪一个是较新版本的C++中更好的选择来处理成员函数的回调。 任何帮助将不胜感激,希望这个例子也会有所帮助。绑定或Lambda成员函数回调C++ 12
template<class T>
void addCallBack(void(T::*someFunc)(int), T* instance) {
func = std::bind(someFunc, instance, _1);
}
std::function<void(int)> func ;
或
template<class T>
void addCallBack(T* instance) {
func = [&instance](int x) {
instance->someFunc(x);
}
}
std::function<void(int)> func;
定义“更好”。 – stark
在表现方面(就我的观点而言,就清晰度而言),Lambdas几乎总是优于“绑定”。 – 0x5453
更适合工作,正确的方式,良好的编程习惯等。 我知道在C++中做大多数事情的方法有100种,并且想知道在这种情况下是否存在正确的方法或者它有什么关系? – user3220058