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;

  

posted on 2021-04-06 14:44  望月又一  阅读(351)  评论(0编辑  收藏  举报