C++ C++;将此指针与bind inside lambda函数一起使用

C++ C++;将此指针与bind inside lambda函数一起使用,c++,lambda,this,bind,C++,Lambda,This,Bind,我使用std::bind在lambda函数中绑定一个成员函数,在一些代码中如下所示: class A { ... ... public: foo(function<void()> f) { } ... ... }; class B { ... ... A a; public: B_function_1(){ a.foo([](){ some_other_function(bind(&B::B_function_2, thi

我使用std::bind在lambda函数中绑定一个成员函数,在一些代码中如下所示:

class A {
...
...

public:
   foo(function<void()> f) {

   }
...
...
};

class B {
...
...
A a;
public:
   B_function_1(){
      a.foo([](){
         some_other_function(bind(&B::B_function_2, this, _1,_2));
   }
...
private:
   B_function_2(arg1, arg2) {
   ...
   }
};
在我的例子中,这是指当前的类(B类)。 那么,我的问题是这里的问题是什么?我错过了什么


谢谢。

要在lambda中捕获this指针,请使用
a.foo([this]()

[this]按值捕获此指针 [&]通过引用捕获lambda主体中使用的所有自动变量odr


从文档中,要捕获lambda中的this指针,请使用
a.foo([this]()

[this]按值捕获此指针 [&]通过引用捕获lambda主体中使用的所有自动变量odr


从文档中

错误消息就在那个里。这个并没有被捕获。你们需要捕获它。错误消息就在那个里。
这个
并没有被捕获。你们需要捕获它。是的,正在粘贴。正在尝试从文档中复制粘贴:)[]什么也不捕获(或者,焦土战略?[&]通过引用捕获任何引用变量[=]通过复制捕获任何引用变量[=,&foo]通过复制捕获任何引用变量,但通过引用捕获变量foo[bar]通过复制捕获栏;不要复制任何其他内容[this]捕获封闭类的此指针Yeah正在粘贴中。正在尝试从文档复制粘贴:)[]不捕获任何内容(或焦土策略?[&]通过引用捕获任何引用变量[=]通过复制捕获任何引用变量[=,&foo]通过复制捕获任何引用变量,但是通过引用捕获变量foo[bar]通过复制捕获bar;不要复制任何其他内容[this]捕获封闭类的this指针
error: ‘this’ was not captured for this lambda function