C++ C++;将此指针与bind inside lambda函数一起使用
我使用std::bind在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
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