Vc++ - base - lambda表达式

Vc++ - base - lambda表达式,第1张

Vc++ - base - lambda表达式 1、语法

如何定义一个lambda表达式?

[捕获列表](参数列表)->返回类型 
{
    //函数体
}
2、[]捕获列表

捕获列表分为以下几种:

1)值捕获  ;2)引用捕获  ;3)隐式捕获;4)表达式捕获

语法形式分为以下几种:

1) [ ]:不捕获外部变量

2)[name]:按值捕获变量name

3) [&name]:按引用捕获变量name

4) [this]:捕获当前变量,表达式可以访问该对象的所有成员

5)[=] 值捕获所有变量

6) [&] 引用捕获所有变量

7)[=,&x] 默认按照值捕获所有变量,除了x按照引用捕获

8)[&,x]:默认按照引用捕获所有变量,除了x按照值捕获

9) [name1=expr1,name2=expr2,...]: 捕获一系列表达式

3、详细的例子
#include 

using namespace std;

int main(int argc,char** argv)
{
    auto lambda1 = [](){
        cout<<"this is a lambda1";
    };

    lambda1();


    int a = 10;
    int b = 20;

    auto lambda2 = [a](){
        cout<<"this is a lambda2 and a = "<

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5155717.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-18

发表评论

登录后才能评论

评论列表(0条)

    保存