[](){}构造在C++中意味着什么?

问题描述:

我有这段代码。[](){}构造在C++中意味着什么?

boost::for_each(
    boost::make_iterator_range(
      func(arg1), 
      func(arg2) 
     ), 
     [&d, &f](const a<b>& c) 
     { 
      something; 
     } 
); 

我理解代码的迭代器部分。对我来说不清楚的是我们迭代的结果。这种结构意味着什么? [](){}

+1

[这个问题](http://*.com/questions/7627098/what-is-a-lambda-expression-in-c11)有一个很好的解释。 – chris 2013-03-13 15:31:33

这是一个lambda-expression,一个匿名方法/函数。如果没有理由定义不同的函数,则可以以内联方式提供它。 []通过值[]或通过引用[&]绑定本地参数。在()中,你可以像在函数调用中那样传递值,并且{}包含函数体。

请参阅here