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。