是否正在/正在为GCC开发“ clang ++:-Wunused-lambda-capture”等效警告?

时间:2018-07-31 14:56:50

标签: c++ gcc g++ compiler-warnings clang++

背景

我有时会遇到使用以下虚拟lambda捕获(而不是C ++ 17中的(void)x;... foo(int /* x */)... foo([[maybe_unused]] int x))的代码,以补救未使用的变量警告:

void foo(int bar)
{
    [&x]{}();
}

现在,这并不是真正的补救方法,因为它将警告从当前范围传递到了lambda捕获,但是afaik,GCC并没有诊断程序来标记这一点,例如叮当声(as of 5.0)发出unused-lambda-capture警告(如果已激活)。

$ clang++ -xc++ -std=c++11 -Wunused-lambda-capture - <<< "int main() { int x; [&x]{}(); }"

<stdin>:1:23: warning: lambda capture 'x' is not used [-Wunused-lambda-capture]
int main() { int x; [&x]{}(); }
                      ^
1 warning generated.

在GCC项目中,如果可能的话,我可以在不诉诸Clang的情况下捕获上述构造。

问题

  • GCC目前确实没有等效功能吗?
  • 如果不是,那么该功能是否正在计划中/正在实施中?

1 个答案:

答案 0 :(得分:2)

这是针对GCC的公开错误报告

GCC目前确实不存在吗?

确实如此,正如非常古老但仍未解决的错误报告所涵盖的:

如果没有,那么该功能是否正在计划中/正在实施中?

基于对此错误报告没有采取任何措施(2012年并得到确认的,此后似乎没有发生太多事情),此信息可能不会很快添加。