std::function是c++11新增的一个模板类,目的是更为方便的使用函数指针。
语法
std::function<函数返回值(形参列表)> 变量名称
举例
我定义一个std::function类型的变量如下
std::function<int(int a, int b)> plusFunc;
它可以表示任何一个返回值为int,形参列表为int a, int b这样的函数指针。
因此,假如我有这样的一个函数定义,我可以把函数的地址赋值给plusFunc;
int puls(int a, int b)
{
return a + b;
}
// 函数名就代表着该函数的地址,也就是指向该函数的指针
plusFunc = plus;
同样,它和函数指针也可以相互赋值。
int (*p)(int, int);
plusFunc = p;