當時想着一個帶參數的函數,如何將參數指定好,然後保存到一個對象中,後續直接調用這個對象即可
而不用再這個對象中再傳入參數。function的使用就需要再傳參數,比如
void GlobalFunction(int& i)
{
++i;
}
使用function的效果
int j = 10;
function<void(int&)> fun1 = GlobalFunction;
fun1(j);
後面考慮到bind
auto fun2 = bind(GlobalFunction, j);
fun2();
這就滿足了前面的需求了
因爲GlobalFunction是引用,上面bind使用j不會改變,如下語句又是不通的
auto fun2 = bind(GlobalFunction, &j);
考慮到ref的使用
auto fun2 = bind(GlobalFunction, ref(j));
fun2();
順利解決!