C++ 编译错误:';这';无法在此上下文中隐式捕获

C++ 编译错误:';这';无法在此上下文中隐式捕获,c++,scope,this,condition-variable,C++,Scope,This,Condition Variable,我试图添加一个条件变量来处理线程,但在这一行出现编译错误: this->cv.wait(lk, []{return this->ready;}); 对于变量this->ready,“this”似乎不在正确的范围内 在爪哇中,这可以用TestTead来处理。这,C++中有没有做同样的事情?< /P> void TestThread::Thread_Activity() { std::cout << "Thread started \n";

我试图添加一个条件变量来处理线程,但在这一行出现编译错误:

this->cv.wait(lk, []{return this->ready;});
对于变量this->ready,“this”似乎不在正确的范围内

在爪哇中,这可以用TestTead来处理。这,C++中有没有做同样的事情?< /P>
void TestThread::Thread_Activity()
    {
        std::cout << "Thread started \n";
        // Wait until ThreadA() sends data
        {
            std::unique_lock<std::mutex> lk(m);
            this->cv.wait(lk, []{return ready;});
        }

        std::cout << "Thread is processing data\n";
        data += " after processing";
        // Send data back to ThreadA through the condition variable
        {
           // std::lock_guard<std::mutex> lk(m);
            processed = true;
           // std::cout << "Thread B signals data processing completed\n";
        }

    }
void TestThread::Thread\u活动()
{
std::cout cv.wait(lk,[{return ready;});
}

std::cout您需要捕获
指针:

this->cv.wait(lk, [this]{return ready;});

旁注:在不同的上下文中,可能根本不需要捕获此
。例如,
静态
类方法和变量可以在lambda中使用,而无需捕获