【问题标题】:C++11 lambda doesn't take const variable by reference, why?C++11 lambda 不通过引用获取 const 变量,为什么?
【发布时间】:2013-11-06 03:38:39
【问题描述】:

尝试编译这段代码:

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

在clang++上一切正常,但g++报错:

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

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

【问题讨论】:

  • 你试过最新的gcc-4.9吗?
  • 不,我的仓库中只有 4.8.1 可用。
  • 只需提交一个错误。如果它无效,他们会作废,比在这里问更好。

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


【解决方案1】:

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

根据 cmets,它从 GCC 4.5.4 开始持续存在,并且在那个时候,在 GCC 4.9.0 中没有固定。

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多