• c++ std::function的使用


    类模板 std::function 是一种通用的多态函数包装器。
    std::function 可以存储、复制和调用任何 Callable 目标的实例、函数、lambda 表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针。
    所存储的可调用对象被称为目标的 std::function,不包含目标的 std::function 将其称为空,调用目标为空的 std::function,结果为 std :: bad_function_call 抛出异常。
     
    一个例子说明 std::function 的使用:
    #include <iostream>
    #include <functional>
    
    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::function<int(int, int)> func1 = add;
        int result1 = func1(1, 2);
        std::cout << "result1: " << result1 << std::endl;
    
        std::function<int(int, int)> func2 = g_lambda;
        int result2 = func2(1, 3);
        std::cout << "result2: " << result2 << std::endl;
    
        std::function<int(int, int)> func3 = Add();
        int result3 = func3(1, 4);
        std::cout << "result2: " << result3 << std::endl;
    
        return 0;
    }
    // 输出结果为:
    // result1: 3
    // result2: 4
    // result2: 5
    
    
  • 相关阅读:
    [python]百度语音rest api
    [vim]插件ctrlp
    [vim]插件NerdTree
    [Flask Security]当不能通过认证的时候制定跳转
    MongoDB 安装
    c/c++封装成python包
    mysql的常用操作
    python基础知识的学习和理解
    docker系列之三:docker实际应用
    docker系列之二:构建docker容器
  • 原文地址:https://www.cnblogs.com/tongyishu/p/13194348.html
Copyright © 2020-2023  润新知