Freigeben über


Compiler-Grenzen

Der C++-Standard empfiehlt Grenzen für verschiedene Sprachkonstrukte. Es folgt eine Liste von Fällen, bei denen der Visual C++-Compiler keine empfohlenen Limits implementiert. Die erste Nummer ist das im ISO C++ 11-Standard (INCITS/ISO/IEC 14882-2011[2012], Anhang B) definierte Limit, und die zweite Nummer ist das von Visual C++ implementierte Limit:

  • Schachtelungsebenen von Verbundanweisungen, Iterationssteuerungsstrukturen und Auswahlsteuerungsstrukturen [C++-Standard: 256] (Visual C++-Compiler: abhängig von der Kombination der geschachtelten Anweisungen, typischerweise jedoch zwischen 100 und 110).

  • Parameter in einer Makrodefinition [C++-Standard: 256] (Visual C++-Compiler: 127).

  • Argumente in einer Makrodefinition [C++-Standard: 256] (Visual C++-Compiler 127).

  • Zeichen in einem Zeichenfolgenliteral oder in einem breiten Zeichenfolgenliteral (nach Verkettung) [C++-Standard: 65536] (Visual C++-Compiler: 65535 Einzelbytezeichen inklusive des null-Abschlusszeichens, und 32767 Doppelbytezeichen inklusive des null-Abschlusszeichens).

  • Ebenen geschachtelter Klassen-, Struktur- oder Union-Definitionen in einer einzelnen struct-declaration-list [C++-Standard: 256] (Visual C++-Compiler: 16).

  • Memberinitialisierer in einer Konstruktordefinition [C++-Standard: 6144] (Visual C++-Compiler: mindestens 6144).

  • Bereichsqualifikationen eines einzigen Bezeichners [C++-Standard: 256] (Visual C++-Compiler: 127).

  • Geschachtelte extern-Spezifikationen [C++-Standard: 1024] (Visual C++-Compiler: 9 (ohne die explizite extern-Spezifikation im globalen Bereich, oder 10 inklusive der expliziten extern-Spezifikation im globalen Bereich.).

  • Vorlagenargumente in einer Vorlagendeklaration [C++-Standard: 1024] (Visual C++-Compiler: 2046).

Siehe auch

Referenz

Nicht dem Standard entsprechendes Verhalten