function包装器
function包装器 也叫作适配器。C++中的function本质是一个类模板,也是一个包装器。那么我们来看看,我们为什么需要function呢?
函数指针,仿函数,lambda,如此丰富的类型,可能会导致模板的效率低下,可以统一用function来包装统一类型
包装器 -- 可调用对象类型进行再封装适配--统一类型
- 函数指针
- 仿函数
- lambda
std::function在头文件<functional>
// 类模板原型如下
template <class T> function; // undefined
template <class Ret, class... Args>
class function<Ret(Args...)>;
模板参数说明:
Ret: 被调用函数的返回类型
Args…:被调用函数的形参
// 使用方法如下:
#include <iostream>
#include <functional>
using namespace std;
int f(int a, int b)
{
return a + b;
}
struct Functor
{
public:
int operator()(int a, int b)
{
return a + b;
}
};
class Pl