Effective Modern C++ 笔记 - Lambda表达式
Lambda表达式(Lambda)是C++编程中的游戏规则改变者。这有点令人惊讶,因为它们并没有给语言带来新的表达能力。Lambda所能做的所有事情都是您可以手动完成的,只需再多输入一点即可。但是用Lambda来创建函数对象实在是太方便了,这对日常C++软件开发的影响是巨大的。STL“_if”
算法(例如,std::find_if
、std::remove_if
、std::count_if
等),比较函数(例如,std::sort
、std::nth_element
、std::lower_bound
等)用Lambda作参数毫无压力。在STL之外,Lambda使快速创建std::unique_ptr
和std::shared_ptr
的自定义删除器成为可能,并且它们也能使线程API中条件变量简单明了。除了标准库之外,Lambda还为一次性调用的回调函数、接口适应函数和上下文相关函数的动态规范提供了便利。Lambda确实使c++成为一种更令人愉快的编程语言。