大規模なプロジェクトで、私は最近、メンバー変数のシャドーイングに関する問題を発見しました。将来それらを回避するために、-Wshadow を導入してそのような問題を示したいと考えました。ただし、ほとんどのコンストラクターは次のようになります。
struct Foo{
int bar1, bar2;
Foo(int bar1, int bar2): bar1(bar1), bar2(bar2){}
}
これは便利で便利ですが、もちろんコンパイラに警告を発行させるので、それらの場所で警告がスパムになります。もちろん、パラメーター名またはメンバー変数を変更することもできます (しかし、それらは何と呼ばれるべきでしょうか?「bar1」は既に名前を完全に説明しています...) しかし、これは実際の問題から気を散らす多くの作業です。今のところ、gcc がイニシャライザ リストを無視するようにします。
Wshadow のように動作するが初期化子リストを無視するフラグ/オプション/... はありますか?