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;
}
761

被折叠的 条评论
为什么被折叠?



