cpp中std::bind()的理解
允许我们创建一个可调用对象,它在调用时会将给定的参数绑定到一个函数或函数对象。
std::bind是C++11引入的函数绑定器(头文件
绑定函数(普通函数/成员函数/对象函数)的部分/全部参数;
返回一个“新的可调用对象”(可以像普通函数一样调用);
未绑定的参数用【占位符】(std::placeholder::_1 、_2 、_3 ...)表示,调用新对象时传入的参数会按占位符序号填充。
点击查看代码
#include<iostream>
#include<functional>
int add(int a, int b) {
return a + b;
}
int main() {
//
auto bound_add = std::bind(add, 5, std::placeholders::_1);
// add要绑定的目标函数(这里是普通函数int add(int a,int b))。
// 5 要固定绑定到add第一个参数(a)的值,即a=5被固定死
// std::placeholders::_1 占位符(第一个位置),表示:调用bound_add时传入的第一个参数,会填充到add的第二个参数(b)的位置
// 可以把bound_add理解为一个新函数,它的签名是:int(int)(接收1个int参数,返回int)。
std::cout << bound_add(10) << std::endl;//输出:15
}

浙公网安备 33010602011771号