std::function回调函数
时间: 2023-09-23 16:05:22 浏览: 57
std::function是一个函数包装器,可以用来存储、传递和调用各种可调用对象,包括函数、成员函数、Lambda表达式等。它可以将函数的类型和参数列表进行封装,使得我们可以在运行时动态地指定回调函数。
使用std::function可以方便地定义回调函数。以下是一个示例:
```cpp
#include <iostream>
#include <functional>
// 回调函数类型为void(int)
typedef std::function<void(int)> CallbackFunc;
void performCallback(int num, CallbackFunc callback) {
// 执行回调函数,并将num作为参数传入
callback(num);
}
void myCallback(int num) {
std::cout << "回调函数被调用,参数为:" << num << std::endl;
}
int main() {
CallbackFunc callback = myCallback;
performCallback(42, callback);
return 0;
}
```
在上面的示例中,我们定义了一个回调函数类型CallbackFunc为void(int),然后通过std::function<CallbackFunc>来声明一个变量callback,将myCallback函数赋值给它。然后,我们调用performCallback函数,并传入一个整数和callback作为参数。performCallback函数会执行回调函数,并将该整数作为参数传入。
运行上述代码,会输出:回调函数被调用,参数为:42。
这就是使用std::function来定义和使用回调函数的基本方法。希望对你有帮助!如果有任何进一步的问题,请随时提问。