在嵌入的lambda中捕获'this'指针

时间:2017-08-22 23:49:00

标签: c++ c++11 lambda

我有一个从另一个lambda调用的lambda,在'inner'lambda中我似乎没有正确捕获this指针。这里的语法有问题吗?我的代码格式为:

void MyClass::myFunction(double newValue)
{
    auto innerLambda = [this]() -> bool    // I've also tried '[&]' here
                       { 
                           if (this -> State == State1)
                               return true;
                           else
                               return false;
                       };

     auto outerLambda = [&](double newValue)   
                        {
                            if (innerLambda())
                            {
                                // Do something
                                ...
                            }
                            else
                            {
                               // Do something else
                               ...
                            }
                        };  

     outerLambda(newValue);
}

如果我在outerLambda中放置调试断点并检查this指针的内容,那么一切都存在且正确,但如果我在innerLambda中执行相同操作,那么{ {1}}指针似乎指向垃圾。

0 个答案:

没有答案