コンパイラ エラー C2362
'identifier' の初期化が 'goto label' によってスキップされています
/ Za を使用してコンパイルすると、ラベルにジャンプしても、識別子が初期化されなくなります。
宣言が入力されていないブロックで囲まれている場合、または変数が既に初期化されている場合にのみ、初期化子を使用して宣言をジャンプできます。
次の例では C2362 が生成されます。
// C2362.cpp
// compile with: /Za
int main() {
goto label1;
int i = 1; // C2362, initialization skipped
label1:;
}
考えられる解決方法:
// C2362b.cpp
// compile with: /Za
int main() {
goto label1;
{
int j = 1; // OK, this block is never entered
}
label1:;
}