- 包装指定调用标签(如
double(double)
返回值类型为 double,参数也是 double 类型)的函数; - 替代以前的函数指针、函数对象和 lambda 表达式;
- 类模板
std::function
是一个通用的多态函数包装器。 - function 的实例可以存储、复制和调用任何
CopyConstructible Callable
目标:- 函数
lambda
表达式std::bind
表达式- 函数对象
- 指向成员函数的指针
- 指向成员属性的指针
- 可以减少生成的模板函数实例化代码的数量,缩小可执行文件的大小;
参考: