2
++グラムでプラグマを無視されていません警告フラグを有効にしたままにしますが、この特定のインスタンスを抑制します。
私は次のように適用されます。-Wundefは、次のコードを考える
#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