0.初识
C++11 提供了一个名为std::bind的函数模板,可用于生成可调用对象的转发调用包装器,相当于是个通用函数适配器(旧版本的bind1st/bind2nd已被弃用),可以适配任意的可调用对象,包括函数指针、函数引用、成员函数指针和函数对象。它接受一个可调用对象,生成一个新的可调用对象来适配原来的参数列表。
bind将可调用对象与其参数一起进行绑定,绑定后的结果可以使用std::function保存。bind绑定完成后,返回一个函数对象,它内部保存了原可调用对象的拷贝,具有operator(),返回值类型被自动推导为原可调用对象的返回值类型。调用时,这个函数对象将把之前存储的参数转发给原可调用对象完成调用。
1.绑定普通函数一般形式如下:
auto newCallable = std::bind(callable, arg_list);
第一个参数为要绑定的可调用对象,后跟参数列表(参数列表同可调用对象的参数列表匹配)。参数列表中可包含名字形如 _n (n为整数)的占位符,n表示生成的可调用对象中参数的位置。占位符位于std::placeholders命名空间。
#include
#include
//相加
int add(int a, int b)
{
std::cout
关注
打赏