【发布时间】:2018-03-05 21:47:46
【问题描述】:
我对在下面的 C++11 代码段中 [funcParam] 周围使用方括号感到困惑:
typedef std::function<std::vector<OtherType> ()> FuncPtr;
inline void create(FuncPtr funcParam)
{
auto create_evaluator = [funcParam] ()
{
return anotherFunction(funcParam());
};
// ...
}
这一行调用的上面的代码(为了保持可读性做了一些简化):
create( [] () { return CONSTANT; } );
有人可以解释在这两种情况下括号的使用吗?在调用代码中,它看起来被用来创建一个没有名称的函数。它在第一部分做什么?谢谢!
【问题讨论】:
-
这称为 lambda 表达式。谷歌“C++ 11 lambda”,你会发现很多信息。
-
正是我需要的,谢谢! (如果没有“lambda”,很难搜索到这个)。