下面是一个使用 boost::function 的示例:

#include <iostream>
#include <boost/function.hpp>

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

int subtract(int a, int b) {
    return a - b;
}

int main() {
    boost::function<int(int, int)> operation;

    operation = add;
    std::cout << '5 + 3 = ' << operation(5, 3) << std::endl;

    operation = subtract;
    std::cout << '5 - 3 = ' << operation(5, 3) << std::endl;

    return 0;
}

在上面的示例中,我们首先定义了两个函数 add 和 subtract,它们都接受两个整数并返回一个整数。然后,我们声明了一个 boost::function 对象 operation,它接受两个整数并返回一个整数。

我们将 add 函数赋值给 operation,然后使用 operation 调用 add 函数来执行加法操作。接下来,我们将 subtract 函数赋值给 operation,并使用 operation 调用 subtract 函数来执行减法操作。

注意,boost::function 可以用于存储不同的函数对象,只要它们具有相同的函数签名(接受相同类型的参数并返回相同类型的结果)。在示例中,我们将 add 和 subtract 函数赋值给了同一个 boost::function 对象,因为它们都接受两个整数并返回一个整数。


原文地址: https://www.cveoy.top/t/topic/lXJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录