lambda语法
[capture list] (parameter list) specifiers exception -> type { function body }
-
[capture list]是捕获列表,在应用中必填。
-
(parameter list)是参数列表,在应用中选填。
-
specifiers是限定符,在应用中选填。
-
exception是异常说明符,在应用中选填。
-
-> type是返回值类型,在应用中选填。
-
{ function body }是表达式的函数体,在应用中必填。
lambda表达式返回值类型;如果不指定返回类型,则编译器会根据代码实现为函数推导一个返回类型;如果没有返回值,则可忽略此部分。
[capture list]说明
关于中括号,有三种形式[],[&],[=],[=,&c](混合模式)
[] : 当前作用域的参数不拷贝到lambda函数
[&] : 将当前作用域的变量作为引用传入lambda函数
[=]: 将当前作用域的变量作为形参传入lambda函数
[=,¶mx] :表示paramx是引用,其他的是形参
specifiers 说明
限定符值为mutable,含义是可以在函数体内修改按值捕获的变量;如果不需要此操作,则可以省略。
exception说明
异常说明符值为noexcept,含