自动强制转换为 void 未使用的变量 C++

fbo*_*s22 0 c++ variables casting void unused-variables

我正在尝试解决由许多未使用的变量生成的 C++ 项目中的大量警告。例如,考虑这个函数:

void functionOne(int a, int b)
{
    // other stuff and implementations :D
    doSomethingElse();
    runProcedureA();
}
Run Code Online (Sandbox Code Playgroud)

在我的项目中,为了抑制警告,我只是将未使用的变量强制转换为void,因为我无法更改方法签名。

void functionOne(int a, int b)
{
    (void)a;
    (void)b;
    // other stuff and implementations :D
    doSomethingElse();
    runProcedureA();
}
Run Code Online (Sandbox Code Playgroud)

这项技术工作正常,但我有大量的功能需要执行此操作以解决警告问题。有没有办法通过将所有未使用的参数强制转换为void来自动重构所有这些函数?

目前,我正在使用 CLion IDE 和 VSCODE。

eer*_*ika 5

一个简单的替代方法是不为参数而不是演员表命名。这样,未使用将被认为是故意的:

void functionOne(int, int)
Run Code Online (Sandbox Code Playgroud)

实现相同目标的另一种方法是:

void functionOne([[maybe_unused]] int a, [[maybe_unused]] int b)
Run Code Online (Sandbox Code Playgroud)

有没有办法自动重构所有这些功能

潜在的 XY 问题:如果您不想收到有关未使用参数的警告,那么禁用警告怎么样?

  • @fborges22您可以保留这些并禁用单独的警告。 (5认同)