顾名思义 函数指针本质未指针,指针函数本质为函数
最简单的辨别看函数名最近的指针*号有没有被括号()包含
指针函数:返回值为指针的函数 int *fun():
定义函数指针的几种方法
void (*funcPtr)(int x); typedef void (*FuncPtrType)(int ); using FP = void (*) (int);std::function
std::function 是一个可调用对象包装器,是一个类模板,可以容纳除了类成员函数指针之外的所有可调用对象,它可以用统一的方式处理函数、函数对象、函数指针,并允许保存和延迟它们的执行。
//std::function原型定义如下 templateclass _LIBCPP_TEMPLATE_VIS function<_Rp(_ArgTypes...)>
使用示例
// 普通函数
int add(int a, int b){return a+b;}
// lambda表达式
auto mod = [](int a, int b){ return a % b;}
std::function a = add;
std::function b = mod ;
//在sougou的workflow框架有大量的使用std::function,给出工程上的示例



