Lambda捕获列表

列表决定 Lambda 如何访问定义时所在作用域的外部变量,分为以下类型:
1.空捕获                 []                 不捕获任何外部变量(仅能访问全局 / 静态变量)
2.按值捕获            [a,b]              拷贝 a、b 到 Lambda 内部(Lambda 内修改不影响外部)
3.按引用捕获        [&a,&b]        引用 a、b(Lambda 内修改会影响外部,需确保变量生命周期)
4.隐式按值捕获     [=]                捕获所有外部变量的拷贝(Lambda 内默认不可修改,需加mutable)
5.隐式按引用捕获   [&]               捕获所有外部变量的引用(慎用,避免悬垂引用)
6.混合捕获            [=,&a]           除 a 按引用捕获,其余按值捕获;或[&, a](除 a 按值,其余按引用)
7.捕获this指针      [this]             类成员函数内的 Lambda,捕获this以访问类的成员变量 / 函数
8.捕获当前作用域  [*this]           拷贝当前对象(而非引用this),避免this悬垂
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务