g++ -Wall オプションには -Wreorder が含まれています。このオプションの機能については、以下で説明します。なぜ誰かが気にするのか (特に、-Wall でこれをデフォルトでオンにするほど) は私にはわかりません。
-Wreorder (C++ のみ) コード内で指定されたメンバー初期化子の順序が 実行順序と一致します。例: 構造体A{ 整数 i; 整数j; A(): j (0), i (1) { } }; コンパイラはiとjのメンバー初期化子を次のように再配置します。 メンバーの宣言順序と一致し、そのメンバーに警告を発する 効果。この警告は -Wall によって有効になります。
ベストアンサー1
考慮する:
struct A {
int i;
int j;
A() : j(0), i(j) { }
};
現在はi
ゼロではなく、何らかの不明な値に初期化されています。
あるいは、の初期化i
には順序が重要となる副作用があるかもしれません。例:
A(int n) : j(n++), i(n++) { }