c++ std::function的使用

2021-05-04 19:29

阅读:422

标签:异常   ret   col   nal   实例   包含   表达   目标   其他   

类模板 std::function 是一种通用的多态函数包装器。
std::function 可以存储、复制和调用任何 Callable 目标的实例、函数、lambda 表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针。
所存储的可调用对象被称为目标的 std::function,不包含目标的 std::function 将其称为空,调用目标为空的 std::function,结果为 std :: bad_function_call 抛出异常。
 
一个例子说明 std::function 的使用:
#include 
#include 

auto g_lambda = [](int a, int b) -> int { return a + b; };

int add(int a, int b) {
    return a + b;
}

class Add {
public:
    int operator () (int a, int b) {
        return a + b;
    }
};

int main()
{
    std::functionint(int, int)> func1 = add;
    int result1 = func1(1, 2);
    std::cout "result1: "  std::endl;

    std::functionint(int, int)> func2 = g_lambda;
    int result2 = func2(1, 3);
    std::cout "result2: "  std::endl;

    std::functionint(int, int)> func3 = Add();
    int result3 = func3(1, 4);
    std::cout "result2: "  std::endl;

    return 0;
}
// 输出结果为:
// result1: 3
// result2: 4
// result2: 5

 

c++ std::function的使用

标签:异常   ret   col   nal   实例   包含   表达   目标   其他   

原文地址:https://www.cnblogs.com/tongyishu/p/13194348.html


评论


亲,登录后才可以留言!