C ++是否可以将多个方法绑定在一起?

时间:2016-07-22 22:55:22

标签: function c++11 stdbind

我想在使用std :: function的另一个方法之后调用一个方法。假设我有这样的东西

class foo
{

   std::function<void(int)> fptr;

   void bar(int){
   }
   void rock(){
   }
public:

   foo() {
       fptr = bind(&foo::bar,this,std::place_holder::_1); //<------Statement  1
   }
}

现在因为语句1,如果我调用fptr(12),则调用方法栏。 我的问题是我可以指定或操纵语句1,以便在调用bar之后调用rock。我知道我可以简单地bar calle rock但这不是我想要的。可以绑定帮我完成这个吗?

1 个答案:

答案 0 :(得分:1)

std::bind在这里不会有任何帮助,但是一个lambda会。

fptr = [this](int n) { bar(n); rock(); };