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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?