C++11引入了std::ref 為了解決函數(shù)式編程的參數(shù)是值拷貝的情況
這幾個(gè)例子的情況各不相同
int a = 5;
auto fun = [](int &a){ //引用
a++;
};
std::thread(fun, a); //值拷貝
std::bind(fun, a); // 值拷貝
以上的例子中 除了直接調(diào)用lambda 其余涉及到函數(shù)式編程的例子 參數(shù)都是值拷貝
std::ref正是應(yīng)用在這個(gè)情況 將上述的式子改為
int a = 5;
auto fun = [](int &a){ //引用
a++;
};
std::thread(fun, std::ref(a)); //引用
std::bind(fun, std::ref(a)); //引用
假如異步編程遇到需要引用參數(shù) 獲取結(jié)果值 就需要使用這種方式