C++11 lambda表达式

本文深入解析C++中的Lambda表达式语法,包括捕获列表、参数列表、mutable关键字、throw异常声明及返回类型等核心概念。同时,通过具体实例展示了最简单的Lambda表达式和泛型Lambda的使用方法。

lambda语法:

[ 捕 获 列 表 ]( 参 数 列 表 ) mutable  throw(异 常 类型) -> 返 回 类 型 {

函数体…

}

捕获列表方式:

• [] 空捕获列表

• [name1, name2, . . . ] 捕获一系列变量

• [&] 引用捕获, 让编译器自行推导捕获列表

• [=] 值捕获, 让编译器执行推导应用列表

 

参数列表:可选,lambda函数的传入参数列表;

mutable:可选,表示可以修改按值传入的变量副本(不是值本身),不会将改变传递到lambda表达式之外;

throw()可选,表示lambda表达式可以抛出指定类型的异常;

返回类型:可选,lambda表达式返回类型。

 

例子:

auto add= [](int aint 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 xauto y){

    return x+y;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值