std::bind 引用
时间: 2023-11-09 19:58:21 浏览: 98
C++11中lambda、std::function和std:bind详解
std::bind是一个通用的函数适配器,它可以将可调用对象和参数绑定成一个新的可调用对象。在使用std::bind时,如果希望以引用方式传递参数或者某些参数无法拷贝,可以使用std::ref()来将参数转换成引用。通过使用std::bind,可以实现对函数的参数进行绑定,可以绑定部分参数或者全部参数。
在引用的代码示例中,使用std::bind将print2函数与参数a和引用b绑定,然后调用bind返回的可调用对象func2。在调用func2之前和之后,打印出a和b的值。可以看到,调用func2之前,a和b的值分别为1和2;用func2之后,a的值不变,仍为1,而b的值根据print2函数的修改而改变。
在引用的代码示例中,演示了使用std::placeholders::_1来占位表示函数参数。可以看到,根据bindFun1的不同定义方式,可以实现对testFun函数的不同参数进行绑定。
综上所述,std::bind可以实现对可调用对象及其参数的绑定,通过使用std::ref可以将参数转换成引用,std::placeholders::_1可以用于占位表示函数参数。
阅读全文