cjiang3 发表于 2021-6-22 05:29:40

“无捕获”, “值捕获”和“引用捕获” 的解读 ,来自C++ 14标准

本帖最后由 cjiang3 于 2021-6-22 05:50 编辑

我的贴子来自自己的一个问题贴

1)一个参数的含义https://fishc.com.cn/thread-197871-1-1.html,

总结了 template和lambda的起到的化学作用 , 无意间发现了 “无捕获”, “值捕获”和“引用捕获” 的概念, 很难理解 , 写了篇帖子
2)https://fishc.com.cn/thread-197873-1-1.html

3)“无捕获”, “值捕获”和“引用捕获” 的概念 :

   [ ]是 ‘无捕获’ ,注意是‘没有捕获’,即除了参数()接口意外,不能通过其他方式调用{}以外的任何变量,从而达到【自我封闭】的效果。
   
   [=]是 ‘值捕获’ ,即除了参数接口()外(值、指针/地址),只能读取{}外面变量的值,但不能改变{}外面的变量(be read only but not written),否则报错,
   
   [&]是 ‘引用捕获’ , {}体里没有某一个变量的定义,要使用的变量在{}的外部被捕获(在函数外面捕获,跨{...}函数体使用 ,类似于global 变量和普通函数的关系,
                             即函数可以没有限制的使用外部变量(不必经过参数列表),可读可写,其实是一种【引用传递】啦
                          

说的很理论 , 还不懂的话 , 看代码, 附上图片 和 代码



cjiang3 发表于 2021-6-22 05:31:01

本帖最后由 cjiang3 于 2021-6-22 05:53 编辑

https://docs.microsoft.com/en-us/cpp/cpp/lambda-expressions-in-cpp?view=msvc-160

Microsoft 的关于 lambda C++14 标准的解读, 在我遇到的项目里面已经使用了, 英文版, 如果看不懂 , 看我代码就好

页: [1]
查看完整版本: “无捕获”, “值捕获”和“引用捕获” 的解读 ,来自C++ 14标准