如何将std :: bind与std :: placeholders绑定到类成员函数

时间:2019-12-15 11:30:26

标签: c++

我有两个要绑定的类成员函数。我必须传递占位符,因为第二个类将自行设置参数。

假设我有课

class slave
{
public:
   void func1();
   void func2(bool a, bool b);
};

和第二班

class master
{
public:
   std::function<void(void)> func1;
   std::function<void(bool, bool)> func2;
};

我可以这样绑定func1和func2

master Master;
slave Slave;

Master.func1 = std::bind(&slave::func1, &Slave);
Master.func2 = std::bind(&slave::func2, &Slave, true, false);

但是如何绑定占位符?

没有绑定到类成员函数,我只能写:

std::function<void(bool, bool)> func2;
func2 = std::bind(&slave::func2, &Slave, std::placeholders::_1, std::placeholders::_2);

但我不会写

Master.func2 = std::bind(&slave::func2, &Slave, std::placeholders::_1, std::placeholders::_2);

如何使用占位符在类成员函数之间进行绑定?

0 个答案:

没有答案