C++11 lambdas 和方括号

标签 c++ syntax c++11 lambda

查看这个示例 lambda:

[](int factor)->int{return factor*factor;}

谁能向我解释一下 C++11 lambda 表达式前面的 方括号 有什么用处?

最佳答案

方括号指定 lambda “捕获”哪些变量,以及如何(通过值或引用)。

捕获意味着您可以从 lambda 内部引用 lambda 外部的变量。如果按值捕获,您将在创建 lambda 时获取变量的值——类似于按值将参数传递给函数。如果通过引用捕获,您将拥有对 lambda 之外的实际变量的引用(并且您需要确保它保持在范围内)。

请注意,您可以在类中捕获“this”,然后像在类方法中一样调用类方法。

关于C++11 lambdas 和方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559658/

相关文章:

python - ctypes自己的库加载但无法访问函数/方法

c++ - tryentercritical 部分未声明的标识符

qt - 为 C++11 标准构建 Qt 项目

c++ - 如何删除 peer if-else 分支中的冗长句子

c++ - 循环具有相似名称的对象

r - 减去两列以在 R 中给出一个新列

javascript - jQuery .offset() 为 var 对象的类 `top` 获取未定义

Python:在实例方法中一般引用一个类?

c++ - 在 C++11 中迭代生成一组线程?

C++ cURL 链接错误 "unresolved external symbol _curl_easy_"