1.概念
1)c++11使用bind()函数可以向函数传递参数,一般调用形式为:
返回的newCallable是一个可调用的对象,callable是需要传参的函数,arg_list是参数列表
2)bind()函数的头文件是 functional,使用时最好带上std::,因为网络编程中也有一个bind()函数
3)实例:
其中_1是占位符
4)占位符:
- 占位符占据了传递参数的位置,_1为bind对象的第一个传参位置,_2为bind对象的第二个传参位置,依此类推
- 占位符定义在std::placeholders中(using namespace std::placeholders;)
2.bind重排参数顺序
调用g时,第一个参数将被传递给f作为最后一个参数,第二个参数将被传递给f作为第三个参数。
3.绑定参数的方式
默认情况下,不是占位符的参数是通过拷贝的方式来到bind对象的,遇上不可拷贝的IO类,bind必须使用ref函数:
ref函数返回一个可拷贝的对象;还有cref函数,用于const版的引用。