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