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

C++ is it possible to bind multiple methods together?

我想使用 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) 方法 bar 被调用。 我的问题是我能否指定或操作语句 1,以便在调用 bar 之后调用它 rock。我知道我可以简单地让 bar calle rock 但这不是我想要的。绑定可以帮我完成这个吗?

std::bind 在这里没有什么用,但是 lambda 会。

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