2
编译考虑下面的代码忽略保持警告标志启用,但禁止这个特定的实例。
我申请了以下内容:-Wundef没有被用在G ++
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wundef"
#pragma GCC diagnostic push
#endif
#if MACRO_WITHOUT_A_VALUE
int var;
#endif
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
int main(){}
这只有在clang++
解决问题。
命令clang++ -std=c++1z -Wundef -o main main.cpp
生成没有警告。
命令g++ -std=c++1z -Wundef -o main main.cpp
和以前一样使用相同的[-Wundef]
警告。
如何在g++
中抑制-Wundef
警告?
g++ (Ubuntu 5.1.0-0ubuntu11~14.04.1) 5.1.0
clang version 3.8.0
你可以使用'#if defined(MACRO_WITHOUT_A_VALUE)&& MACRO_WITHOUT_A_VALUE'吗? – Ryan
也许,但我正在包装我不想修改的第三方代码。 –
把它换成'#ifdef'而不是呢? – Ryan