std::function
是 C++ 标准库提供的一个通用函数封装器,它可以包装任意可调用对象(函数、函数指针、成员函数指针、Lambda 表达式等),并提供统一的接口进行调用。
std::bind
是 C++ 中的一个函数模板,用于创建函数对象(也称为绑定对象)并绑定参数。
std::bind
的基本语法形式如下:
auto boundFunc = std::bind(function, args...);
其中:
function
是一个函数或函数指针,可以是普通函数、成员函数、函数对象等。args...
是函数的参数列表,可以是具体的参数值、占位符_1
、_2
等,或者其他可调用对象。
std::bind
函数会返回一个函数对象 boundFunc
,它可以被调用来执行绑定的函数。
下面是一些常见的用法示例:
- 绑定普通函数:
-
void foo(int a, float b) { // ... } auto boundFunc = std::bind(foo, 42, 3.14f); boundFunc(); // 调用 foo(42, 3.14f)
-
- 绑定成员函数: