C+++ 11(或较低)中的gcc __attribute __((未使用))的视觉工作室等效吗?
我正在尝试编写一个宏来使用用户想要的抑制变量警告(例如,当您尚未实现整个类时,在派生的类中)。我知道我可以删除变量名称...但是要明确我更喜欢宏)。
到目前为止,我已经使用了
#ifdef WIN32
#define UNUSED(x) x
#else
#define x __attribute__((unused))
#endif
:
void test_fn(int unused(test_var)){...}
我看到了这篇文章:抑制 - 不使用的inver- in-nes-nes-in-in-n and-is-n nonever-never-never-never-never-never-never-never-never-in-never-in-never-in-n in-ver-in-never-in-nes-nes-in-c-sharp-in-n-c-sharp-in-charp ins-in-n c-sharp in -c-sharp ,但这给了我一个无法真正使用的结果(多行#pragmas)。
因此,我的问题是,MSVS等于 __属性__(((未使用)))
? - IE在同一条线上?
注意:这个问题没有回答如何做我要问的事情: how-do-i-i-best-silence-a-about-about-unused-unused-bariables 因为它不涵盖如何以某种方式以某种方式使用它在函数原型中与MSV和GCC一起使用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果可能未使用变量或函数 - gcc的
__属性__(((未使用))
旨在抑制有关它的任何警告。现在,如果您想要一些便携式的东西,则有多种选择:
如果在某些情况下可以使用它,只需通过将其施放到
void
:中,只需使用它一次。
是的,第二个选项不在原型中,而是必须制定津贴。
升级到C ++ 17并使用。
If a variable or function-argument is potentially unused, gcc's
__attribute__((unused))
is designed to suppress any warning about it.Now, if you want something portable, there are multiple choices:
If it might be used under some circumstances, simply use it once definitely by casting to
void
:Yes, the second option is not in the prototype, but one has to make allowances.
Upgrade to C++17 and use
[[maybe_unused]]
.如果您的使用仅
因此,通过宏删除可变名称:
您可以选择
If your usage is only
So remove variable name through MACRO:
You can go with