NF

地方で働くプログラマ

8回目:警告オプション色々(2)

一応、これで2カ月続いたことになります。
内容が薄いというのはその通りだけど、続けることが大事かもしれないし、そうじゃないかもしれない。自分の知識だとこれくらいの薄さじゃないと続かないというのはありそう。


で、前回の続きです。Wshadow調べてたら以下の記事を見つけた。
GCCの-Wshadowとその推移について、あとお前を消す方法 - in neuro
 
コンパイルオプションに対して、ソースコードの部分単位で警告対象外にできるそうです。そういえば、何か見た事あるかも。同じファイル内でもpush/popで任意の部分に対して適用できる。

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"

// この間は"-Wshadow"で警告されない

#pragma GCC diagnostic pop

 
なんか、現場で「XXって警告オプションのせいで俺の正しいコードのコンパイラが通らないから外してくれ」みたいな話で揉めてるのをたまに見る(マジです)ので、そういう人のコードはこれで囲んであげたらいいんじゃない?知らんけど。
 
いや何かを思い出して投げやりになったけど、そういうのは諦めずにちゃんと直させるべきだよ。
未だにバグが出続けるレガシーコードを改修する時とかで、警告を強化したいけど一気にはできないね、って時に使うのがいいのかもしれない。


あと、上の記事の方が紹介してくれてる以下のサイトは面白そう。
How to Disable a Warning in C++ - Fluent C++
 
おわり