Boost::function 示例:函数对象存储与调用
下面是一个使用 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 著作权归作者所有。请勿转载和采集!