1. 使用前添加头文件
#include <functional>
2.普通函数使用
声明模板 std::function<返回类型(参数列表)> 模板变量名 = 已定义函数名
原始函数 myfunc
void myfunc(int a) { printf("%d\n",a); }
类模板映射到原始函数 myfunc std::function<void(int)> void_func = myfunc;
映射后调用
void_func(888);
输出结果: 888
3.匿名函数调用
声明模板 std::function<返回类型(参数列表)> 模板变量名 = [引用列表](参数列表) -> 返回类型 {}
int n = 999;//n用于匿名函数引用 std::function<int(int,int)> lambad_param_call = [n](int a,int b) -> int { printf("%d,%d,%d\n",n,a,b); return n + a + b; };
下面为不带参数与引用的匿名函数
std::function<void()> lambad_call = []() { printf("%s\n", "std::