【发布时间】:2012-08-25 06:34:58
【问题描述】:
在将一大段 C++ 代码从 Visual Studio (2008) 移植到 Xcode (4.4+) 时,我遇到如下行:
UNUSED_ALWAYS(someVar);
UNUSED_ALWAYS(x)(通过UNUSED(x))宏扩展为x,这似乎可以很好地使Visual C++ 静音。然而,这对 Clang 来说还不够。
对于 Clang,我通常使用 #pragma unused x 指令。
UNUSED_ALWAYS 和 UNUSED 宏在我控制的人工 windows.h 标头中定义,其中包含许多帮助 Xcode 编译 Windows 内容的实用程序。
有没有办法定义UNUSED(x) 扩展为#pragma unused x?我试过这个,Clang 无法接受:
#define UNUSED(x) #pragma unused(x)
我也试过了:
#define UNUSED(x) (void)(x)
这似乎有效。我错过了什么吗?
【问题讨论】:
-
有什么理由不直接删除未使用的变量?您可以在 C++ 中省略函数参数列表中的 var 名称。
-
我不能:在 windows 上编译时使用了该变量。
标签: c++ xcode visual-c++ clang suppress-warnings