std::function 是一种通用、多态的函数封装,它的实例可以对任何可以调用的目标实体进行存储、复制和调用操作,它也是对 C++ 中现有的可调用实体的一种类型安全的包裹(相对来说,函数指针的调用不是类型安全的),简而言之,std::function 就是函数的容器。配合上 bind 能够解决成员函数指针跟随类的弊端,比传统的函数指针更加强大。
所以,写 C++ 代码的时候,不要再写什么函数指针了!
- 先来看一个成员函数指针的例子:
class Base;
typedef void(Base::*Func)(void);
class Base<