Update item31.md

This commit is contained in:
猫耳堀川雷鼓 2021-03-15 20:48:04 +08:00 committed by GitHub
parent cae792278d
commit d12cba48af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -48,7 +48,7 @@ C++11中有两种默认的捕获模式按引用捕获和按值捕获。但默
这就是本条款的一个总结。如果你偏向技术,渴望了解更多内容,就让我们从按引用捕获的危害谈起吧。 这就是本条款的一个总结。如果你偏向技术,渴望了解更多内容,就让我们从按引用捕获的危害谈起吧。
按引用捕获会导致闭包中包含了对某个局部变量或者形参的引用,变量或形参只在定义*lambda*的作用域中可用。如果该*lambda*创建的闭包生命周期超过了局部变量或者参的生命周期那么闭包中的引用将会变成悬空引用。举个例子假如我们有元素是过滤函数filtering function的一个容器该函数接受一个`int`作为参数,并返回一个`bool`,该`bool`的结果表示传入的值是否满足过滤条件: 按引用捕获会导致闭包中包含了对某个局部变量或者形参的引用,变量或形参只在定义*lambda*的作用域中可用。如果该*lambda*创建的闭包生命周期超过了局部变量或者参的生命周期那么闭包中的引用将会变成悬空引用。举个例子假如我们有元素是过滤函数filtering function的一个容器该函数接受一个`int`,并返回一个`bool`,该`bool`的结果表示传入的值是否满足过滤条件:
```c++ ```c++
using FilterContainer = //“using”参见条款9 using FilterContainer = //“using”参见条款9