lambda函数基本格式为(而例子中“mutable”和“return-type”被省略):
[capture] (parameter)mutable -> return-type {body}
[capture]:捕捉列表。不可省略,lambda函数总是从[]开始定义,[]也表示了lambda函数开始定义,[]里面的可以写入对象参数,表明函数可以使用函数外哪些参数,对象参数类型稍后详细介绍;
(parameters):参数列表。可以省略,与普通函数的参数列表一致。如果不需要额外参数传递,则可以连同括号“()”一起省略;
mutable:mutable修饰符。可以省略,默认情况下,Lambda函数总是一个const函数,非引用传入的值都是常量,不可修改,mutable可以取消其参数的常量性。在使用该修饰符时,必须有参数传入;
->return-type:返回类型。可以省略,用追踪返回类型形式声明函数的返回类型,类似于定义普通函数时函数名前面的函数类型。我们可以返回值类型不需要说明的时候也可以连同符号”->”一起省略。
{statement}:函数体。不可省略,内容与普通函数一样,不过除了可以使用参数之外,还可以使用所有捕获的变量。