mirror of
https://github.com/CnTransGroup/EffectiveModernCppChinese.git
synced 2025-02-04 16:20:31 +08:00
Update item31.md
This commit is contained in:
parent
cae792278d
commit
d12cba48af
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user