lambda表达式捕捉使用=报错问题

1.问题现场

 

2.提问与答案  

当[]为=时,报上述错误,而改为&时则OK.现在有个疑问,不是说用=是值传递的方式,为何n是一个不可修改的左值呢?

= 默认是 const 不能修改的,需要加上mutable可以让n能够在函数体中发生改变,但main函数中n仍然还是0.因为mutable只是保证可以修改函数里的n,但本质还是值传递.

auto f2 =[=](int x) mutable {}
新战场:https://blog.csdn.net/Stephen___Qin
原文地址:https://www.cnblogs.com/Stephen-Qin/p/13055524.html