我的理解是,如果我在lambda表达式中使用语法[&],那么我的lambda表达式可以访问函数的周围变量和参数。
因此,我尝试编写以下(简化)代码
if ( [&]()
{
bool b = false;
return b;
}
)
{
// Do something in TRUE part of if statement
}
但我收到错误“类型'lambda at ...'的值不能在上下文中转换为'bool'
对此问题有所了解。
非常感谢, d
答案 0 :(得分:13)
你需要调用你正在构建的lambda。它不会被隐式调用。
if ([&]() { /*...*/ return b; }()) {
// ^^ call the lambda
// ...
}