相关疑难解决方法(0)

捕获的变量隐藏在lambda中传递变量.怎么取消隐藏?

考虑这个例子:

int main()
{
    int a = 100;
    std::cout<<[=,&a](int a,int b){return a+b;}(99,1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出101不是我期望的100.

我不能指定,[&a,=]因为它给出了错误.

如何避免名称隐藏并引用参数.我知道更改名称是选项,但我很好奇.也参考标准会有所帮助

编辑:我正在使用gcc 4.7.1

编辑:

这是显示演示的ideone链接.我用C++编译器4.7.2那里
ideone

c++ c++11

6
推荐指数
1
解决办法
576
查看次数

标签 统计

c++ ×1

c++11 ×1