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会有语法报错。

上一篇:Oracle PL/SQL


下一篇:vscode相对路径调试找不到文件解决办法