Visual Studio 相当于 c++11(或更低版本)中的 gcc __attribute__((unused))?

cod*_*der 5 c++ visual-studio c++11 visual-studio-2017

我正在尝试编写一个宏,以便在用户需要时使用抑制未使用的变量警告(例如,在派生类中,当您尚未实现整个类时)。我知道我可以删除变量名称...但为了明确起见,我更喜欢宏)。

到目前为止我有这个:

#ifdef WIN32
    #define UNUSED(x) x
#else
    #define x __attribute__((unused))
#endif
Run Code Online (Sandbox Code Playgroud)

用法如下:

void test_fn(int UNUSED(test_var)) {...}

我看到这篇文章:suppressing-is-never-used-and-is-never-assigned-to-warnings-in-c-sharp,但它给了我一个我无法真正使用的结果(多行#pragmas)。

所以我的问题是,是否有相当于 MSVS 的__attribute__((unused))?- 即在同一条线上?

注意:这个问题没有回答如何做我所问的事情:how-do-i-best-silence-a-warning-about-unused-variables,因为它没有涵盖如何在函数原型中以某种方式使用它适用于 MSVS 和 gcc。

Jar*_*d42 3

如果您的用途只是

void test_fn(int UNUSED(test_var)) {...}
Run Code Online (Sandbox Code Playgroud)

我知道我可以删除变量名称...但为了明确起见,我更喜欢宏)。

所以通过MACRO删除变量名:

你可以去

#define UNUSED(x) /*Empty*/
Run Code Online (Sandbox Code Playgroud)