C ++ 11 lambda不引用const变量,为什么?

时间:2013-10-27 09:38:32

标签: c++ c++11 lambda g++ clang++

尝试编译此代码:

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

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

  

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

我没有找到解释这种行为的任何内容。这是g ++中的错误吗?或者clang ++会错过什么吗?

1 个答案:

答案 0 :(得分:5)

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

根据评论,它持续于GCC 4.5.4,并且在那一刻,未在GCC 4.9.0中修复。