std::bind 转换无形参数函数的示例
时间: 2024-05-08 11:14:04 浏览: 94
C++ 11 std::function和std::bind使用详解
std::bind是C++11标准库提供的一个函数,它可以将一个可调用对象(函数、函数指针、成员函数、函数对象等)和其对应的参数绑定在一起,形成一个新的可调用对象。
以下是一个将无参函数转换为有参函数的示例:
```c++
#include <iostream>
#include <functional>
void print_hello()
{
std::cout << "Hello, ";
}
void print_world(const std::string& str)
{
std::cout << str << "!" << std::endl;
}
int main()
{
auto f = std::bind(print_world, "world");
print_hello();
f();
return 0;
}
```
在上面的代码中,我们定义了两个函数print_hello和print_world。使用std::bind将print_world和参数"world"绑定在一起,形成一个新的可调用对象f。执行print_hello之后,调用f(),即相当于调用print_world("world"),输出结果为"world!"。
阅读全文