8

if/else if/else if巨大な... ブロックで実装されたメッセージング システムのレガシー コードがいくつかあります。新しいブロックを追加しようとすると、elseVisual Studio 2010 に「内部コンパイラ エラー」が発生します。

が C++ 標準で定義されているか、実装で定義されているelseステートメントの最大数を知っていますか? 実装が定義されている場合、Visual Studio 2010 の最大数はどこで確認できますか?

歴史的な理由から、実装があまり賢明でなくても、コードを変更することはできません。

4

2 に答える 2

12

C++ 標準では、最小値は必要ありません。推奨される最小値はありますが、必須ではありません。

複合ステートメント、反復制御構造、および選択制御構造のネストレベル [256]。

実装の制限を超えると、動作は未定義になります。

于 2013-04-06T19:48:10.770 に答える
1

Visual Studio C++ コンパイラの制限は次のとおりです (Google 提供)。

MSVC コンパイラの制限

于 2013-04-06T22:43:18.153 に答える