首页 > 解决方案 > 自动转换为无效未使用的变量 C++

问题描述

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

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

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

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

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

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

标签: c++variablescastingvoidunused-variables

解决方案


一个简单的替代方法是不为参数命名而不是强制转换。这样,不使用将被认为是故意的:

void functionOne(int, int)

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

void functionOne([[maybe_unused]] int a, [[maybe_unused]] int b)

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

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


推荐阅读