std::functional 是 C++ 标准库中一个非常强大的工具,它提供了一种**类型擦除(type erasure)**机制,让你能够存储、传递和调用任何可调用对象(callable)。 核心作用 1.统一的可调用对象包装器
|
std::functional 是 C++ 标准库中一个非常强大的工具,它提供了一种**类型擦除(type erasure)**机制,让你能够存储、传递和调用任何可调用对象(callable)。 核心作用1.统一的可调用对象包装器std::function 可以包装任何可调用实体,只要签名匹配:
2.类型擦除隐藏具体类型,只暴露接口。这使得你可以:
主要使用场景场景 1:回调函数(Callbacks)
场景 2:策略模式 / 算法注入
场景 3:事件系统 / 观察者模式
场景 4:延迟执行 / 任务队列
场景 5:绑定成员函数
std::functionvs 模板 vs 裸函数指针
最佳实践
std::functional 的核心价值在于灵活性——当你需要在运行时决定调用什么、或者需要在容器中存储可调用对象时,它是不可或缺的工具。 |
2022-05-14
2021-11-29
2022-04-04
2022-06-24
2021-11-25