可能重复:
C++11 lambda 表达式末尾的括号
#include <iostream>
int main(int argc, char* argv[])
{
int j;
[&](){j = 10;}(); // why I need the last rounded parentheses () and what is their purpose ?
// ...
return(0);
}
我几乎了解了 lambda 是如何工作的,我的最后一个问题是为什么我需要上面代码中报告的最后几个括号。
lambda 的蓝图是
[](){}
另外,我在这里通过引用为我的 lambda 输入一个输入,我直接j
用这个 lambda 写入,但是我的编译器抱怨这样一个事实,即如果我不把额外的值放在()
最后,这个 lambda 会生成一个未使用的值的拉姆达。
所以,最后,一个 lambda 是这个
[](){}
或这个
[](){}()
?