C++ 使用 boost::function 定义 Functor 教程
使用 boost::function 来定义一个 functor 有几个步骤:
- 包含 boost/function.hpp 头文件。
#include <boost/function.hpp>
- 定义一个函数对象类,并重载()运算符。
class MyFunctor {
public:
void operator()() {
// 在这里定义函数对象的行为
}
};
- 使用 boost::function 定义一个函数对象的类型。
boost::function<void()> myFunctor;
- 将函数对象赋值给 boost::function 对象。
MyFunctor myObject;
myFunctor = myObject;
- 调用函数对象。
myFunctor();
完整的示例代码如下:
#include <iostream>
#include <boost/function.hpp>
class MyFunctor {
public:
void operator()() {
std::cout << 'Hello, World!' << std::endl;
}
};
int main() {
boost::function<void()> myFunctor;
MyFunctor myObject;
myFunctor = myObject;
myFunctor();
return 0;
}
原文地址: https://www.cveoy.top/t/topic/o61i 著作权归作者所有。请勿转载和采集!