考虑这个例子:
int main()
{
int a = 100;
std::cout<<[=,&a](int a,int b){return a+b;}(99,1);
return 0;
}
输出101
不是我的预期100
。
我无法指定,[&a,=]
因为它会给出错误。
我如何避免名称隐藏并引用参数。我知道更改名称是一种选择,但我很好奇。参考标准也会有所帮助
编辑:我正在使用 gcc 4.7.1
编辑:
这是显示演示的ideone链接。我在那里使用了 c++ 4.7.2 编译器
ideone