次の方法で共有


コンパイラの制限

C++ 標準は、さまざまな言語構成体の制限を勧告しています。 以下は、Microsoft C++ コンパイラが推奨される制限を実装しない場合のリストです。 最初の数字は ISO C++ 11 標準 (INCITS/ISO/IEC 14882-2011[2012], Annex B) で規定されている制限であり、2 番目の数字は Microsoft C++ コンパイラで実装されている制限です。

  • 複合ステートメント、イテレーション制御構造、および選択制御構造の入れ子レベル。C++ 標準: 256、Microsoft C++ コンパイラ: 入れ子になっているステートメントの組み合わせに依存しますが、一般的には 100 から 110 の間。

  • 1 つのマクロ定義のパラメーター - C++ 標準: 256、 /Zc:preprocessor-:127 または /Zc:preprocessor:32767 を使用する Microsoft C++ コンパイラ。

  • 1 つのマクロ呼び出しの引数 - C++ 標準: 256、 /Zc:preprocessor-:127 または /Zc:preprocessor:32767 を使用する Microsoft C++ コンパイラ。

  • 文字列リテラルまたはワイド文字列リテラル (連結後) の文字数。C++ 標準: 65536、Microsoft C++ コンパイラ: 終端文字を含む 1 バイト文字の場合は 65535、終端文字を含む 2 バイト文字の場合は 32767。

  • 単一の struct-declaration-list で入れ子になったクラス、構造体、または共用体の定義のレベル。C++ 標準: 256、Microsoft C++ コンパイラ: 16。

  • コンストラクター定義内のメンバー初期化子。C++ 標準: 6144、Microsoft C++ コンパイラ: 最低 6144。

  • 1 つの識別子のスコープ修飾。C++ 標準: 256、Microsoft C++ コンパイラ: 127。

  • 入れ子になった extern 仕様 - C++ 標準: 1024、Microsoft C++ コンパイラ: 9 (グローバル スコープの暗黙的な extern 仕様はカウントされません。グローバル スコープで暗黙的な extern の指定をカウントする場合は 10)。

  • テンプレート宣言内のテンプレート引数。C++ 標準: 1024、Microsoft C++ コンパイラ: 2046。

関連項目

非標準動作