bind是绑定,我接触过的高级语言js、swift中也有类似的应用。一个函数把另一个函数作为参数。
下面是我的demo,运行完,就知道是怎么回事了。
void func(int i, int j,int x,int y){ cout << i << "--" << j << "--" << x <<"--"<< y<< endl;}auto f_bind = bind(func,10,20, _2,_1);int main(){ f_bind(6,99); f_bind(11,22); cout << "end in main \n" << endl; return 0;}
运行结果如下:
可以看出
f_bind = bind(func,10,20, _2,_1);
bind后面第一个参数是绑定的函数名,后面是func对应的4个参数。
_2,代表f_bind的第二个参数传入
_1,代表f_bind的第一个参数传入