天津seo优化公司哪家好,搜索引擎优化论文,网址打包成apk工具,西安旅游必去景点推荐✅ 1. 什么是 std::function
std::function 是 C11 引入的标准库工具#xff0c;是一个通用的函数封装器#xff0c;可以包装以下任意可调用对象#xff1a;
普通函数Lambda 表达式函数指针成员函数指针函数对象#xff08;也叫仿函数#xff0c;定义了 operator() 的类…✅ 1. 什么是 std::function
std::function 是 C11 引入的标准库工具是一个通用的函数封装器可以包装以下任意可调用对象
普通函数Lambda 表达式函数指针成员函数指针函数对象也叫仿函数定义了 operator() 的类
你可以把它理解为 一个可以存储和调用函数的变量。 ✅ 2. 使用语法
#include functionalstd::function返回值类型(参数类型列表) 变量名;比如
std::functionint(int, int) f;表示一个接收两个 int 参数返回 int 的函数对象变量。 ✅ 3. 使用示例 普通函数
int add(int a, int b) { return a b; }std::functionint(int, int) f add;
std::cout f(2, 3); // 输出 5Lambda 表达式
std::functionvoid() hello [](){ std::cout Hello!\n; };
hello(); // 输出 Hello!仿函数函数对象类
struct MyFunctor {void operator()() { std::cout Im a functor\n; }
};std::functionvoid() f MyFunctor();
f(); // 输出 Im a functor✅ 4. 特点总结
特性描述类型安全编译时检查参数和返回值类型是否匹配可赋值可拷贝std::function 可以被赋值给另一个 std::function 变量可为空它可以像指针一样为空用 if (f) 检查是否可调用抽象统一接口可以让你写灵活的接口函数接收任意类型的可调用对象统一成 std::function