lambda匿名函数
定义:

捕捉:传值/传引用/mutable

混合捕捉,=表全普通捕捉
即使全部捕捉, 编译器实现时也不一定全部传入, 编译器只会传入要用到的变量
lambda内可使用的变量的范围
lambda内只能用捕捉对象和全局变量
不能用非全局的父局变量
底层实现类似仿函数,调用operator()
function包装器
用法

意义
提供统一接口,便于统一管理
包装普通函数&静态成员函数
要取地址,变成函数指针后再传给function
特别注意普通类成员函数,function接收参数类型第一个要为class*,使用时也要传本身取地址
或不传对象地址而是传对象也可以
静态成员函数没this就不需要传对象(或对象指针)
bind
定义
返回仿函数对象
调整参数顺序/个数
一般用于绑定(固定)参数

tips
仿函数
重载了()的类,可以像函数一样调用