Sdílet prostřednictvím


Omezení kompilátoru

Standard jazyka C++ doporučuje limity pro různé jazykové konstrukce. Následuje seznam případů, kdy kompilátor jazyka Microsoft C++ neimplementuje doporučené limity. První číslo je limit, který je stanoven ve standardu ISO C++11 (INCITS/ISO/IEC 14882-2011[2012], příloha B) a druhé číslo je limit implementovaný kompilátorem Microsoft C++:

  • Vnoření úrovní složených příkazů, struktur řízení iterací a struktur řízení výběru – standard C++: 256, kompilátor Jazyk C++: závisí na kombinaci příkazů, které jsou vnořené, ale obecně mezi 100 a 110.

  • Parametry v jedné definici makra – standard C++: 256, kompilátor Microsoft C++ pomocí /Zc:preprocessor-:127 nebo pomocí /Zc:preprocessor:32767.

  • Argumenty v jednom vyvolání makra – standard C++: 256, kompilátor Microsoft C++ pomocí /Zc:preprocessor-:127 nebo : /Zc:preprocessor32767.

  • Znaky v řetězcovém literálu nebo širokém řetězcovém literálu (po zřetězení) – standard C++: 65536, kompilátor Microsoft C++: 65535 jednobajtové znaky, včetně ukončovacího znaku NULL a 32767 dvoubajtových znaků včetně ukončovacího znaku NULL.

  • Úrovně vnořených definic tříd, struktur nebo sjednocení v jednom struct-declaration-list standardu C++: 256, kompilátor Microsoft C++: 16.

  • Inicializátory členů v definici konstruktoru – standard C++: 6144, kompilátor Jazyk C++: alespoň 6144.

  • Kvalifikace oboru jednoho identifikátoru – standard C++: 256, kompilátor Microsoft C++: 127.

  • Vnořené extern specifikace – standard C++: 1024, kompilátor Microsoft C++: 9 (nepočítá se implicitní extern specifikace v globálním oboru nebo 10, pokud spočítáte implicitní extern specifikaci v globálním oboru.)

  • Argumenty šablony v deklaraci šablony – standard C++: 1024, kompilátor Microsoft C++: 2046.

Viz také

Nestandardní chování