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

问题描述 投票:1回答:1

背景

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

void foo(int x)
{
    [&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.

在海湾合作委员会项目中,如果可能的话,我可以在不诉诸Clang的情况下捕获上述构造。

问题

  • GCC目前确实没有等效的功能吗?
  • 如果不是,那是当前计划要实现/当前正在实现的功能吗?
c++ gcc g++ compiler-warnings clang++
1个回答
0
投票

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

GCC目前确实没有等效的功能吗?

确实是这种情况,非常古老但仍未解决的错误报告所涉及:

如果不是,那是当前计划要实现/当前正在实现的功能吗?

基于此错误报告上没有采取任何措施(2012年报告[[已确认,此后似乎没有发生太多事情,因此,不久以后将不会添加此内容。

© www.soinside.com 2019 - 2024. All rights reserved.