std::function 和 std::bind
时间: 2024-01-25 11:13:08 浏览: 96
std::function和std::bind是C++中的函数对象和函数绑定的工具。下面是一个例子来介绍它们的用法:
```cpp
#include <iostream>
#include <functional>
void showAll(int a, double b, const std::string& c) {
std::cout << a << "; " << b << "; " << c << std::endl;
}
int main(int argc, char** argv) {
using namespace std::placeholders;
// 使用std::bind将showAll函数绑定成为另一个函数对象
std::function<void(int, double)> output = std::bind(&showAll, _1, _2, "Kobe");
// 调用绑定后的函数对象
output(1, 2);
return 0;
}
```
输出结果为:1; 2; Kobe
在这个例子中,我们定义了一个名为showAll的函数,它接受一个整数、一个双精度浮点数和一个字符串作为参数,并将它们打印出来。然后,我们使用std::bind将showAll函数绑定成为另一个函数对象output。在绑定过程中,我们使用std::placeholders来占位符表示绑定的参数位置。最后,我们调用output函数对象,并传入实际的参数值1和2,输出结果为1; 2; Kobe。
阅读全文