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;
行万里路,不忘初心!
浙公网安备 33010602011771号