您当前的位置: 首页 >  c++

龚建波

暂无认证

  • 3浏览

    0关注

    313博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ std::bind函数适配器

龚建波 发布时间:2020-03-27 13:28:05 ,浏览量:3

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             
关注
打赏
1655829268
查看更多评论
0.0506s