std::function 是通用函数包装器,可统一存储函数指针、lambda、成员函数等可调用对象,提升代码灵活性与泛型能力,需包含 头文件。

在C++中,std::function 和 std::bind 是处理可调用对象的强大工具,它们定义在 <functional></functional> 头文件中,能够统一包装函数指针、成员函数、lambda 表达式和仿函数等。合理使用它们可以提升代码的灵活性与通用性。
std::function:通用函数包装器
std::function 是一个类模板,可以保存、复制和调用任何可调用目标,只要其签名匹配。它的语法形式为:
std::function例如:
- 包装普通函数:
#include iostream>
void greet() { std::cout
int main() {
std::function
func(); // 输出: Hello!
return 0;
}
- 包装 lambda 表达式或函数对象:
std::cout
它也常用于回调机制,比如事件处理、策略模式等场景。
立即学习“C++免费学习笔记(深入)”;
std::bind:绑定参数生成可调用对象
std::bind 可以将函数与其参数(部分或全部)绑定,生成一个新的可调用对象,延迟执行。它适用于固定某些参数、调整参数顺序或绑定成员函数的 this 指针。
基本语法:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~