我正在尝试做这样的事情:
#ifdef _MSC_VER
#define DISABLE_WARNINGS() \
#pragma warning( push, 0 )
#elif __GNUC__
#define DISABLE_WARNINGS() \
#define DISABLE_WARNINGS \
#pragma GCC diagnostic push \
#pragma GCC diagnostic ignored "-Wall"
#endif
在包含在 W4 上产生大量警告的第 3 方 header 之前,我想在我的代码中定义一个宏,例如“DISABLE_WARNINGS”,并确保代码在任何平台上编译。
例如:
DISABLE_WARNINGS
#include <gtkmm/buttonbox.h>
#include <gtkmm/box.h>
#include <gtkmm/window.h>
#include <gtkmm/button.h>
ENABLE_WARNINGS
使用单个宏实现这一目标的最佳方法是什么?
最佳答案
在 C99 模式下,您可以使用 _Pragma
代替 #pragma
:
#define DISABLE_WARNINGS \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wall\"")
关于c++ - `#define` 宏中的编译指示以禁用警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28737178/