尝试编译此代码:
const int a = 1;
auto lambda = [&]() {
&a;
};
lambda();
在 clang++ 上一切都很好,但是 g++ 给出了一个错误:
错误:需要左值作为一元“&” 操作数
我还没有找到任何解释这种行为的东西。它是g ++中的错误吗?还是 clang++ 错过了什么?
它被认为是 g++ 中的一个错误: http://gcc.gnu.org/bugzilla/show_bug.cgi?id= 58894
根据评论,它从 GCC 4.5.4 开始持续,并且在那一刻,在 GCC 4.9.0 中没有修复。