大佬求解,C++代码中的[&]()是什么意思?

图片说明

auto f_norm = &{}
代码贴不全,只能贴图片了

这是c++的lambada表达式,匿名函数的写法,用来捕获匿名函数外的变量。
捕获匿名函数外的变量以引用形式借用说明
里面的x,y,z代表变量名,不写变量名就是按[&]{}里使用到的外部变量以引用方式在匿名函数中使用。

& { };是一个lambda表达式(匿名函数),其中的&是表示,以引用的形式捕获外部的变量,以在lambda中使用该变量,&表示的是一个参数的引用,实际上就是这个参数的别名,
即你如果以引用的形式捕获这个变量则该变量的地址与外部传进来的地址是一样的(同一个变量);而如果是以值的形式(普通传参)传进来,实际上是将该变量
复制了一个再传进来,如果你去获取它们的地址会发现是不同的。

[&] 以引用形式捕获所有外部变量;
https://zhidao.baidu.com/question/1888069978712076508

& 引用 :比如说,一个人有多少外号,但都是指这个人,引用也是这样。如果b的值改动了,也就代表了a的值改动了