1. ホーム
  2. g++

[解決済み】gccの警告" '後に初期化されます。

2022-04-06 11:49:41

質問

私が変更できないサードパーティのコードから、このような警告がたくさん出ています。 この警告を無効にする、あるいは少なくとも特定の領域(VC++の#pragma push/popのような)については無効にする方法はありますか?

list.h:1122: warning: `list<LogOutput*, allocator<LogOutput*> >::node_alloc_' will be initialized after 
list.h:1117: warning:   `allocator<LogOutput*> list<LogOutput*, allocator<LogOutput*> >::alloc_'

解決方法は?

イニシャライザー・リストに表示されるメンバーが、クラス内に表示されるのと同じ順序であることを確認します。

Class C {
   int a;
   int b;
   C():b(1),a(2){} //warning, should be C():a(2),b(1)
}

または -Wno-reorder