当前位置:首页 > 编程笔记 > 正文
已解决

lambda表达式捕获列表---值捕获的方式(In lambda function: assignment of read-only variable)

来自网友在路上 161861提问 提问时间:2023-09-20 16:10:53阅读次数: 61

最佳答案 问答题库618位专家为你答疑解惑

对于lambda表达式以“值”方式捕获的变量,该变量的值默认是被追加了const的,不允许被修改。

因此,如果在lambda表达式中如果想对捕获列表中的变量进行修改,建议采用“引用”/"指针"的方式。

#include <functional>
#include <iostream>int main()
{int a = 1;auto func = [a](){a = 10;printf("lambda function. a=%d\n", a);};++a;printf("main function. a=%d\n", a);func();return 0;
}

编译结果:

lambda.cpp: In lambda function:
lambda.cpp:9:11: error: assignment of read-only variable ‘a’9 |         a = 10;|         ~~^~~~

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"lambda表达式捕获列表---值捕获的方式(In lambda function: assignment of read-only variable)":http://eshow365.cn/6-10068-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!