只需查詢哪一個是較新版本的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