C++Lambda表达式

lambda函数的语法
基本形式

1
[capture](parameters)->return-type {body}
  • []叫做捕获说明符,表示一个lambda表达式的开始。接下来是参数列表,即这个匿名的lambda函数的参数。
  • parameters,普通参数列表
  • ->return-type表示返回类型,如果没有返回类型,则可以省略这部分。这涉及到c++11的另一特性,参见自动类型推导,最后就是函数体部分。
    -[ ] :无捕获,函数体内不能访问任何外部变量
  • [ =] :以值(拷贝)的方式捕获所有外部变量,函数体内可以访问,但是不能修改。
  • [ &] :以引用的方式捕获所有外部变量,函数体内可以访问并修改(需要当心无效的引用);
  • [ var] :以值(拷贝)的方式捕获某个外部变量,函数体可以访问但不能修改。
  • [ &var] :以引用的方式获取某个外部变量,函数体可以访问并修改
  • [ this] :捕获this指针,可以访问类的成员变量和函数,
  • [ =,&var] :引用捕获变量var,其他外部变量使用值捕获。
  • [ &,var]:只捕获变量var,其他外部变量使用引用捕获。

C++Lambda表达式
http://jty-123.github.io/2022/03/28/C++Lambda表达式/
作者
Jty
发布于
2022年3月28日
许可协议