说明
- 类模板 std::function 是一个通用目的的函数包裹对象.
- 于普通函数不同的是,它是一个类对象,可以复制,销毁,存储; 缺点之一它是模板类,使用时必须实例化特定类型才可以,不同类型又不能作为多态使用.
- 结合创建函数 std::bind来使用.
template< class F, class... Args >
/*unspecified*/ bind( F&& f, Args&&... args );
template< class R, class F, class... Args >
/*unspecified*/ bind( F&& f, Args&&... args );
场景
- 使用场景,目前只用在标准库的算法函数里,创建独立的函数对象,比如std::search.
- 和lambda表达式结合使用,处理一些不太需要重用的代码逻辑.