1

我正在遵循指南,并且正在点击包含该术语的代码的这些部分[this](只需 Ctrl-F 即可;您会明白我的意思)。

我不确定这是 C++ 的东西还是 C++/CX 的东西,但是,无论哪种方式,我都不知道它是什么。

它是什么?

4

2 回答 2

6

它被称为“Lambda Closure”,它表示当前实例 ( this) 将被传递到 lambda 主体(使您能够使用它的变量并调用它的方法)。

这个页面很好地总结了 Lambda 闭包:
http ://www.cprogramming.com/c++11/c++11-lambda-closures.html

[] 不捕获任何内容(或者,焦土策略?)
[&] 通过引用捕获任何引用的变量
[=] 通过复制捕获任何引用的变量
[=, &foo] 通过复制捕获任何引用的变量,但捕获变量foo by reference
[bar] 通过复制捕获 bar;不要复制任何其他内容
[this] 捕获封闭类的 this 指针

于 2012-11-20T11:34:27.680 回答
3

它是lambda 匿名函数的语法,它捕获定义它的类的成员。它是 C++11。

于 2012-11-20T11:34:55.870 回答