这里为什么不用std::placeholders
时间: 2023-07-12 09:38:51 浏览: 91
cpp代码-std::bind & function
在上面的例子中,我们没有使用 `std::placeholders`,而是直接将参数 `"Alice"` 列在了 `std::bind` 的参数列表中。这是因为,在 `std::bind` 绑定成员函数时,可以直接在参数列表中列出成员函数的参数,而不需要使用 `std::placeholders`。
具体来说,当我们使用 `std::bind` 绑定成员函数时,需要将成员函数的指针作为第一个参数,对象的指针作为第二个参数,然后将成员函数的参数列在后面。例如:
```c++
auto f = std::bind(&Person::sayHello, &p, "Alice");
```
在上面的例子中,`&Person::sayHello` 表示成员函数指针,`&p` 表示对象指针,`"Alice"` 表示成员函数的参数。
需要注意的是,当使用 `std::bind` 绑定成员函数时,`&` 符号是必须的,否则会编译错误。另外,如果成员函数有多个参数,需要将它们依次列在参数列表中。
阅读全文