#pragma region
でGCC警告を削除するにはどうすればよいですか? コードを簡単に見るためにpragma region
を追加しましたが、#pragma region
に警告が表示されます。 私はVisual Studio 2010を使用しています。#pragma regionでGCC警告を削除するには?
答えて
GCCでは使用しないでください。
#ifndef __GNUC__
#pragma region
#endif
// Stuff...
#ifndef __GNUC__
#pragma endregion
#endif
非常に格好良いか読めないが、GCCの警告なしにコードのコンパイルを行います::)私は、現時点ではと考えることができます
最も簡単な解決策は、それ用のプリプロセッサの条件を使用することです。
読みやすくするために簡単にマクロ化することができます – altendky
@altendky Visual Studioエディタで折りたたむことができる領域を示すために使用されているため、わかりません。これは、Visual Studioエディターパーサーがどれほど優れているかによって異なります。 –
@altendky - どのように?マクロの* replacement-list *の中の単一の '#'( '##'とは対照的に)はプリプロセッサ指令を識別しません。代わりにstringify演算子です。 '# '演算子に続くものは、マクロパラメータ名でなければなりません。 –
GCCは、この警告フラグを有する:#pragma指令が発生したとき
-Wunknown-プラグマ はGCCによって理解されていない警告します。このコマンドラインオプションを使用すると、システムヘッダファイル内の未知のプラグマについても、警告メッセージ が発行されます。これは ではなく、 警告が-Wallコマンドラインオプションによってのみ有効になっている場合です。
いつものように、それを否定することができます。つまり、未知のプラグマには警告が表示されません。つまり、-Wno-unknown-pragmas
を使用します。
-Wall
のように、この警告をオンにするコマンドラインフラグの後には、-Wno-unknown-pragmas
がなければなりません。これにより、すべての未知のプラグマについても警告が無効になりますので注意して使用してください。
このオプションは_all_pragmaの警告を無効にしますが、どのプラグマが警告を生成すべきかを選択することはできません。 –
はい、@JoachimPileborgと、この診断( 'unknown-pragmas')は、' omp'プラグマなどを混乱させると、時には命を救うことができます... –
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
... Code using Unknown pragmas ...
#pragma GCC diagnostic pop
あなたはおそらくWindowsでビルドしているのでこれを#ifdef __GNUC__で囲みます – Eric
MSVC特定のプラグマのようですので、あなたは、Visual Studioの2010年にGCCでコンパイルしている
#ifdef _MSC_VER
#pragma region
#endif
<code here>
#ifdef _MSC_VER
#pragma endregion
#endif
を使用する必要がありますか? – logoff
おそらく役に立ちます:http://dbp-consulting.com/tutorials/SuppressingGCCWarnings.html – altendky
私の提案:コードをリファクタリングしてください。領域を別の機能に変えます。 – user877329