std::bind 的简单使用
std::bind 是 C++11 引入的一个标准库函数,定义在 头文件中,其主要功能包括创建新的可调用实体、绑定参数值、调整参数顺序、将可调用对象与其参数绑定成仿函数以及减少可调用对象传入的参数
#include <iostream>
#include <functional>// 普通函数
int add(int a, int b) {return a + b;
}// 类中的成员函数
class Calculator {
public:int multiply(int a, int b) {return a * b;}
};int main() {/*std::bind(add, 5, std::placeholders::_1) 绑定了普通函数 add,并将第一个参数固定为 5,第二个参数使用占位符 std::placeholders::_1 表示在调用新的可调用实体时传入。*/// 绑定普通函数auto add5 = std::bind(add, 11111, std::placeholders::_1);std::cout << "add5(3) = " << add5(3) << std::endl;/*std::bind(&Calculator::multiply, &calc, std::placeholders::_1, 2) 绑定了类中的成员函数 multiply,并将第一个参数使用占位符 std::placeholders::_1 表示在调用时传入,第二个参数固定为 2。*/// 绑定成员函数Calculator calc;auto multiplyBy2 = std::bind(&Calculator::multiply, &calc, std::placeholders::_1, 99);std::cout << "multiplyBy2(4) = " << multiplyBy2(4) << std::endl;return 0;
}