@bit::Shadow
✧(≖ ◡ ≖✿ 

目录

生命周期

lambda使用

lambda常用捕获


上篇文章地址

生命周期

由于:“捕获”的本质是外部变量等等,所以要确保捕获内容随时可用的的话就要保证被捕获使用的元素的随时有效性。   // 别外部delete了内部还在使用,这就糟了

lambda使用

使用lambda式子设置当button按钮被点击时的信号,打印日志+窗口移动。

由于想要设置button位置需要捕捉成员button,所以在捕捉列表[]内捕捉外部成员“button”,“()”内是为实现lambda表示功能而需要的新增的参数列表。

lambda常用捕获

捕获方式语法含义
空捕获[]不捕获任何外部变量
值捕获(全部)[=]以只读拷贝方式捕获所有使用到的外部变量
引用捕获(全部)[&]以引用方式捕获所有使用到的外部变量
值捕获(指定)[a, b]以只读拷贝方式捕获变量 a 和 b
引用捕获(指定)[&a, &b]以引用方式捕获变量 a 和 b
混合捕获[=, &a]默认值捕获,但 a 例外用引用
混合捕获[&, a]默认引用捕获,但 a 例外用值
移动捕获(C++14)[x = std::move(obj)]通过初始化捕获移动对象

更多推荐