lambda捕获[&]的行为如何?

时间:2019-01-24 23:41:20

标签: c++ lambda

场景:

{
   int A = 5;
   int B = 10;    

   auto f = [&](){ std::cout << A << std::endl; };
   f();
}

在此示例中,我始终假定它仅捕获A,因为它是lambda正文中实际提到的唯一一个。今天有人向我解释说,我不应该使用[&],而应该像[&a]那样指定每个变量,因为[&]会在与lambda变量相同的范围内捕获每个变量,因此即使您仅捕获了A和B,使用/想要A.它如何工作?

0 个答案:

没有答案