标签: c++ lambda
场景:
{ int A = 5; int B = 10; auto f = [&](){ std::cout << A << std::endl; }; f(); }
在此示例中,我始终假定它仅捕获A,因为它是lambda正文中实际提到的唯一一个。今天有人向我解释说,我不应该使用[&],而应该像[&a]那样指定每个变量,因为[&]会在与lambda变量相同的范围内捕获每个变量,因此即使您仅捕获了A和B,使用/想要A.它如何工作?