我是Lambdas的新手,并试图让std :: condition_variable等待一个原子bool,它是另一个引用它的类函数的同一个类的成员。基本上,
class A{
public:
static std::atomic<bool> processed;
static std::condition_variable cvar_processed;
}
class B{
Type somefunction(T1 arg1 , T2 arg2){
A obja;
{
std::unique_lock<std::mutex> lk1(processed_mutex);
std::cout<< "somefunction is waiting..." std::endl;
obja.cvar_processed.wait(lk1, [] { return obja.processed.load(); });
lk1.unlock();
}
// Continue with cool stuff
return type;
}
}
我似乎无法访问lambda表达式中的obja.processed.load()。我尝试像[这个]一样捕获“这个” - 但我认为我的语法错误并没有立刻突显出来。