我知道如何禁用所有未知的#杂注警告。例如,答案是在中给出的。
有没有办法为某个特定的编译指示禁用“未知编译指示”警告?例如,如果我禁用#pragma ugubugu
的警告,则使用以下代码:
#pragma ugubugu
#pragma untiunti
int main() {return 0;}
当使用以下任一方式编译时:
g++ pragma.cpp -Wall
clang++ pragma.cpp -Wall
应该会产生一个警告:
warning: ignoring #pragma untiunti
例如,有没有一种简单的方法来注册一个自定义杂注,而不做任何事情呢?
如果知道Visual Studio是否也有这样的选项,那就太好了,但这并不重要。
“但是,为什么他最终要玩自定义语用呢?”
我的源代码是由两个编译器解析的。在其中一个中,有一个特殊的#pragma
是另一个未知的。当然,我可能会在#pragma
的每个实例中都放入#ifdef COMPILER_IDENTIFICATION_MACRO ... #endif
,但这样做会很麻烦。
发布于 2017-09-29 11:19:12
我假设您想禁用编译指示警告,因为它在一个平台上是有效的,但在另一个平台上是无效的。如果是这种情况,您可以使用宏来选择性地启用编译指示,从而消除禁止显示警告的需要。
例如,如果只想在可视C++上使用杂注,则可以执行以下操作:
#if defined(_MSC_VER)
# define SAFE_PRAGMA_UGUBUGU __pragma(ugubugu)
#else
# define SAFE_PRAGMA_UGUBUGU
#endif
然后,你就可以写
SAFE_PRAGMA_UGUBUGU
#pragma untiunti
int main() {return 0;}
https://stackoverflow.com/questions/6557042
复制相似问题