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

2021/4/10 12:29:19

本文主要是介绍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会有语法报错。



这篇关于c++ Lambda表达式中捕获[a=b]的情况的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程