[](){}构造在C++中意味着什么?
问题描述:
我有这段代码。[](){}构造在C++中意味着什么?
boost::for_each(
boost::make_iterator_range(
func(arg1),
func(arg2)
),
[&d, &f](const a<b>& c)
{
something;
}
);
我理解代码的迭代器部分。对我来说不清楚的是我们迭代的结果。这种结构意味着什么? [](){}
答
这是一个lambda-expression
,一个匿名方法/函数。如果没有理由定义不同的函数,则可以以内联方式提供它。 []
通过值[]
或通过引用[&]
绑定本地参数。在()
中,你可以像在函数调用中那样传递值,并且{}
包含函数体。
请参阅here。
[这个问题](http://*.com/questions/7627098/what-is-a-lambda-expression-in-c11)有一个很好的解释。 – chris 2013-03-13 15:31:33