std::bind, this and QtConcurrent

做~自己de王妃 提交于 2019-12-05 19:28:54

If you want to bind a member function, you would have to pass a this pointer, which in your case would mean that you would have to pass 2 this-pointers:

Normal call to member function:

struct bar {
  int a;
  void foo() {
    std::cout << a << std::endl;
  }

  void call_yourself() {
     auto f = std::bind(&bar::foo, this);
     f();
  }
};

Your case:

    step_f = std::bind(&TuringMachine::step, this, this,std::placeholders::_1);

Without understanding your code, I would probably redesing your code such that you can avoid the double this pointer.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!