知识卡片

闭包保存捕获状态

普通读书笔记卡 · 1399

内容

闭包是求值 lambda 表达式所创建的函数对象,捕获决定它保存哪些值或引用。同一表达式可生成不同状态的闭包;语法表达式与运行期对象应区分。审查回调寿命时,要追踪闭包保存的状态,而不是只看 lambda 定义的位置。

参考来源

- 位置:《Effective Modern C++》第00章《简介与资源》(源文件:_epub-src/EPUB/text/ch001.xhtml) - 结论依据:简介直接定义相关术语并区分表达式、对象与使用语境,本卡保留定义并解释其对回调或转发理解的价值。 - 原始内容:通过 lambda 表达式创建的函数对象称为 闭包 ( closures )。没什么必要去区别 lambda 表达式和它们创建的闭包,所以我经常把它们统称 lambdas 。类似地,我几乎不区分 函数模板 ( function templates )(即产生函数的模板)和 模板函数 ( template functions )(即从函数模板产生的函数)。 类模板 ( class templates…