理解[&] C++ lambda捕获规范

jam*_*tha 1 c++ lambda c++11

这是做什么的?具体来说,我在'this'对象的20个中有3个字段,我想传递给lambda.如果我使用[&]它只会占用我使用的3个字段吗?他们会通过参考或价值传递吗?

谢谢

jpa*_*cek 8

这是什么([&])呢?

它指定通过引用捕获所有(隐式)捕获.也就是说,它表现得好像存在闭包对象的隐藏引用成员,由实际捕获的对象初始化.

在'this'对象中我有20个3个字段,我想要传递给lambda.如果我使用[&]它只会占用我使用的3个字段吗?

不,如果您只捕获this对象的成员,则仅捕获this指针(始终按值).