C++ Lambda 学习笔记
C++ 中,对于一个对象或一个表达式,如果可以对其使用调用运算符(()
),则称它是可调用的。即,如果 e
是可调用的,则可以这样使用:
1 | e(args) |
其中,args
是一个逗号分隔的一个或多个参数的列表。
C++ 中可调用对象除了我们熟悉的函数或函数指针外,还包括函数对象以及 lambda 表达式。
本文重点讲述 lambda 表达式。
lambda 表达式表示一个可调用的代码单元,我们可以将其理解为一个未命名的内联函数。一个 lambda 表达式具有如下形式:
1 | [capture list](parameter list) -> return type {function body} |
- capture list:捕获列表,lambda 表达式所在函数中定义的局部变量列表
- parameter list:参数列表
- return type:返回类型
- function body:函数体
lambda 表达式可以忽略参数列表和返回类型,但必须包含捕获列表和函数体: