关于std::function 的用法:
其实就可以理解成函数指针
1. 保存自由函数
void printA(int a)
{
cout<<a<<endl;
}
std::function<void(int a)> func;
func = printA;
func(2);
存lambda表达式
std::function<void()> func_1 = [](){cout<<"hello world"<<endl;};
func_1();
保存成员函数
struct Foo {
Foo(int num) : num_(num) {}
void print_add(int i) const { cout << num_+i << '\n'; }
int num_;
};
// 保存成员函数
std::function<void(const Foo&, int)> f_add_display = &Foo::print_add;
Foo foo(2);
f_add_display(foo, 1);