C++ C++;11 lambda不';我不能引用常量变量,为什么?

C++ C++;11 lambda不';我不能引用常量变量,为什么?,c++,c++11,lambda,g++,clang++,C++,C++11,Lambda,G++,Clang++,正在尝试编译此代码: const int a = 1; auto lambda = [&]() { &a; }; lambda(); 在clang++上,一切正常,但g++给出了一个错误: 错误:一元'&'操作数需要左值 我没有发现任何解释这种行为的东西。这是g++中的一个bug吗?还是clang++遗漏了什么?这被认为是g++中的一个bug: 根据评论,它从GCC 4.5.4开始使用,目前还没有在GCC 4.9.0中修复。您是否尝试过最新的GCC-4.9?不,我的回购协议

正在尝试编译此代码:

const int a = 1;
auto lambda = [&]() {
  &a;
};
lambda();
在clang++上,一切正常,但g++给出了一个错误:

错误:一元'&'操作数需要左值


我没有发现任何解释这种行为的东西。这是g++中的一个bug吗?还是clang++遗漏了什么?

这被认为是g++中的一个bug:


根据评论,它从GCC 4.5.4开始使用,目前还没有在GCC 4.9.0中修复。

您是否尝试过最新的
GCC-4.9
?不,我的回购协议中只有4.8.1可用。只需提交一个bug。如果它无效,他们将无效,比在这里询问要好。