当时想着一个带参数的函数,如何将参数指定好,然后保存到一个对象中,后续直接调用这个对象即可
而不用再这个对象中再传入参数。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();
顺利解决!