有人能解释一下C ++ 11中的lambda和内联函数之间的区别吗?

时间:2017-10-07 00:39:55

标签: c++11

正如标题中所述,C ++ 11 lambda和传统内联函数之间有什么区别?

1 个答案:

答案 0 :(得分:1)

lambda expression评估为某些closure,并且是一个可以存储在某个anonymous function变量中的第一类值(std::function)。详细了解functional programmingbound and free variables以及λ-calculus

闭包混合了代码和数据闭包值 - 并表示一个数学函数(当该闭包为applied时计算)。

例如std::transformstd::find_if通常与lambda表达式一起使用。另请参阅this

优化编译器可能有时优化闭包应用程序作为inlined函数调用。

阅读SICP以了解功能值为何如此重要。