C++ std::function
什么是 std::function?
std::function
是 C++11 引入的一个模板类,它是一个通用的函数包装器,可以存储、复制和调用任何可调用对象(如函数、lambda表达式、绑定表达式或其他函数对象),只要这些对象的调用特征(返回类型和参数类型)符合模板参数的要求。
简单来说,std::function
是一个函数容器,可以存储普通函数、成员函数、函数指针、lambda表达式等多种可调用实体。它属于 C++ 标准库的函数对象(Functor)部分,定义在 <functional>
头文件中。
基本语法
#include <functional>
// 定义一个 std::function 对象
std::function<返回类型(参数类型列表)> 函数对象名;
std::function
的模板参数是一个函数类型,指定了函数的签名(返回类型和参数类型)。