繁体   English   中英

C++ lambda 按值捕获单个结构字段

[英]C++ lambda capture single struct field by value

我有一个很大的结构,想按值从其中捕获一个字段。

下面的代码显然可以工作,但我很困惑,并因此(来自 SO)相信它不应该。 我是否误解了那个帖子,或者这会以某种我看不到的方式失败?

我正在使用 C++14。

struct Foo { int Bar; /* ... */ };
Foo foo;
IAcceptStdFunction( [Bar = foo.Bar]{ /* can use Bar */ } );

您可以在 lambda 内部使用这样的Bar而不会遇到任何麻烦。 请注意,它是原始foo.Bar的副本,而不是参考。

您链接的帖子谈到了一种情况,当我们想查看特定的 lambda 在没有实际调用它的情况下捕获了什么,某种内省。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM