一. std::function 概述
std::function 是一种通用的多态函数包装器 。std::function 的实例可以存储、复制和调用任何可调用的目标——函数、lambda表达式、绑定表达式或其他函数对象,以及指向成员函数的指针和指向数据成员的指针(统称为“可调用对象”)。 存储的可调用对象 称为 std::function 的目标。如果一个std::function 不包含目标,它就被称为空。调用空std::function的目标会导致std::bad_function_call异常被抛出。 [ 翻译自cppreference官网]
二. std::function 存在的意义
对于每一个可调用的对象,它都有自己的类型;很多时候,多个不同类型的可调用对象却拥有着相同的调用形式。在C++98中,通用方法是定义一个指向该“类型”的函数指针,以