std::function 是 C++ 标准库提供的一个通用函数封装器,它可以包装任意可调用对象(函数、函数指针、成员函数指针、Lambda 表达式等),并提供统一的接口进行调用。

std::bind 是 C++ 中的一个函数模板,用于创建函数对象(也称为绑定对象)并绑定参数。

std::bind 的基本语法形式如下:

auto boundFunc = std::bind(function, args...);

其中:

  • function 是一个函数或函数指针,可以是普通函数、成员函数、函数对象等。
  • args... 是函数的参数列表,可以是具体的参数值、占位符 _1_2 等,或者其他可调用对象。

std::bind 函数会返回一个函数对象 boundFunc,它可以被调用来执行绑定的函数。

下面是一些常见的用法示例:

  1. 绑定普通函数:
    1. void foo(int a, float b) {
          // ...
      }
      
      auto boundFunc = std::bind(foo, 42, 3.14f);
      boundFunc();  // 调用 foo(42, 3.14f)
      
  2. 绑定成员函数:
06-04 23:11