C++11中function函数

阅读 31

2022-02-24

包含头文件 #include <functional>

//普通函数
int add(int i, int j) {
    return i+j;
}
//lambda表达式
auto add = [](int i, int j){
    return i+j;
}
//函数对象类
class add{   //仿函数
    int operator() (int i, int j){
        return i+j;
    } 
}

struct add{
    int operator() (int i, int j){
        return i+j;
    } 
}
std::function<int(int, int)> add = [](int i, int j){
    return i+j;
}

typedef std::function<int(int, int)> AddCallback;

类模板std::function是通用、多态的函数封装。可以封装任意的函数对象。

1. function对象最大的用处是实现函数回调,统一处理不同的函数对象类型。函数指针也可以完成同样功能,但是用std::functional实现更加安全。

2. 该对象能与NULL或者nullptr进行比较,但不能检查是否相等

精彩评论(0)

0 0 举报