lambda语法:
[ 捕 获 列 表 ]( 参 数 列 表 ) mutable throw(异 常 类型) -> 返 回 类 型 {
函数体…
}
捕获列表方式:
• [] 空捕获列表
• [name1, name2, . . . ] 捕获一系列变量
• [&] 引用捕获, 让编译器自行推导捕获列表
• [=] 值捕获, 让编译器执行推导应用列表
参数列表:可选,lambda函数的传入参数列表;
mutable:可选,表示可以修改按值传入的变量副本(不是值本身),不会将改变传递到lambda表达式之外;
throw():可选,表示lambda表达式可以抛出指定类型的异常;
返回类型:可选,lambda表达式返回类型。
例子:
auto add= [](int a, int b)->int{
return a + b;
};
int ret = add(1,2);
最简单的lambda表达式:
|
auto value = []{ return 0; } |
泛型lambda
C++14新增泛型lambda,即可以在lambda表达式参数中使用auto关键字,lambda可以自动推导参数类
型。
|
auto add = [](auto x, auto y){ return x+y; } |
本文深入解析C++中的Lambda表达式语法,包括捕获列表、参数列表、mutable关键字、throw异常声明及返回类型等核心概念。同时,通过具体实例展示了最简单的Lambda表达式和泛型Lambda的使用方法。
2万+

被折叠的 条评论
为什么被折叠?



