【发布时间】:2018-08-28 12:54:07
【问题描述】:
我正在尝试编写一个宏以在用户需要时使用抑制未使用的变量警告(例如,在您尚未实现整个类时在派生类中)。我知道我可以删除变量名......但为了清楚起见,我更喜欢宏)。
到目前为止,我有这个:
#ifdef WIN32
#define UNUSED(x) x
#else
#define x __attribute__((unused))
#endif
像这样使用:
void test_fn(int UNUSED(test_var)) {...}
我看到了这个帖子:suppressing-is-never-used-and-is-never-assigned-to-warnings-in-c-sharp,但它给了我一个我不能真正使用的结果(多行#pragmas)。
所以我的问题是,是否有与__attribute__((unused)) 等效的 MSVS? - 即在同一行?
注意:这个问题没有回答我要问的是如何做:how-do-i-best-silence-a-warning-about-unused-variables,因为它没有涵盖如何在函数原型中以同时适用于 MSVS 和gcc。
【问题讨论】:
-
如果How do I best silence a warning about unused variables? 没有涵盖,那么应该添加到那里。
-
如果你因为还没有实现整个类而收到警告,我很乐意让警告保持打开状态,而不是冒着以后忘记这样做的风险。
-
@ShafikYaghmour 我会在那里添加答案......如果我知道的话:)
-
@Aconcagua 不,这里不是重复,因为这些答案不符合我的要求。注意:我在不在代码中的函数参数中使用 UNUSED(x),所以 void cast 等...不起作用。我也看过那篇文章:)
标签: c++ visual-studio c++11 visual-studio-2017