错误:在 Lambda 表达式中捕获外部变量
使用 lambda 表达式时,指定如何捕获外部变量至关重要。在提供的代码中,std::remove_if 算法中的 lambda 表达式需要访问外部变量 flagId。但是,报告的错误表明缺少捕获模式。
解决方案:
要解决此问题,必须使用方括号 ([ ])。这允许 lambda 表达式访问其范围内的外部变量。主要有三种捕获模式:
对于提供的代码,适当的捕获模式是通过引用,因为它需要访问 flagId 的更新值。因此,修正后的 lambda 表达式为:
<code class="cpp">[&flagId](Flag& device) { return device.getId() == flagId; }</code>
通过指定捕获模式,lambda 表达式可以正确访问外部变量 flagId 并执行所需的操作。
以上是如何正确捕获Lambda表达式中的外部变量?的详细内容。更多信息请关注PHP中文网其他相关文章!