5

尝试编译此代码:

const int a = 1;
auto lambda = [&]() {
  &a;
};
lambda();

在 clang++ 上一切都很好,但是 g++ 给出了一个错误:

错误:需要左值作为一元“&” 操作数

我还没有找到任何解释这种行为的东西。它是g ++中的错误吗?还是 clang++ 错过了什么?

4

1 回答 1

5

它被认为是 g++ 中的一个错误: http://gcc.gnu.org/bugzilla/show_bug.cgi?id= 58894

根据评论,它从 GCC 4.5.4 开始持续,并且在那一刻,在 GCC 4.9.0 中没有修复。

于 2013-10-27T14:42:48.677 回答