正如标题中所述,C ++ 11 lambda和传统内联函数之间有什么区别?
答案 0 :(得分:1)
lambda expression评估为某些closure,并且是一个可以存储在某个anonymous function变量中的第一类值(std::function
)。详细了解functional programming和bound and free variables以及λ-calculus。
闭包混合了代码和数据闭包值 - 并表示一个数学函数(当该闭包为applied时计算)。
例如std::transform
和std::find_if
通常与lambda表达式一起使用。另请参阅this。
优化编译器可能有时优化闭包应用程序作为inlined函数调用。
阅读SICP以了解功能值为何如此重要。