编程语言
首页 > 编程语言> > c++ Lambda表达式中捕获[a=b]的情况

c++ Lambda表达式中捕获[a=b]的情况

作者:互联网

https://blog.csdn.net/gongjianbo1992/article/details/105128849
捕获列表中=表示值捕获,但是如果是[a=b]则应理解为,先执行a=b 的赋值,然后捕获a

#include <iostream>
using namespace std;
int main()
{   
    int a=10;
    int b=5;
    auto cwd=[a=b](){
        int b=7;
        cout<<"a="<<a<<"     b="<<b<<endl;\
        return a+b;
    };
    cout<<cwd()<<endl;
}
[Running] cd "/home/cwd/code/" && g++ test.cpp -o test && "/home/cwd/code/"test
a=5     b=7
12

若不在内部定义b,直接使用b会有语法报错。

标签:code,int,捕获,c++,test,home,cwd,表达式,Lambda
来源: https://blog.csdn.net/cwdben/article/details/115564072