std::function<>模板(万能可调用类型)
用于定义可回调列表,可以包含所有可调用的对象。
可以用于c++成员函数、隐函数、c函数、lambda表达式工4种。
//传统c函数 int c_function(int a, int b) { return a+b; } int (*f)(int, int); //函数指针形式 f = c_function; couot<<f(3,4)<<endl; std::function<int(int, int)> callAble; callAble = c_function; cout<<callAble(3,4)<<endl; //lambda表达式 std::function<int(int, int)> callAble = [](int a, int b){ return a+b; }; cout<<callAble(3,4)<<endl; //隐函数(函数对象) class Functor { public: int operator()(int a, int b) { return a+b; } } Functor functor; std::function<int(int, int)> callAble = functor; cout<<callAble(3,4)<<endl;