Límites del compilador

El estándar de C++ recomienda límites para varias construcciones del lenguaje. La siguiente es una lista de casos en los que el compilador de Microsoft C++ no implementa los límites recomendados. El primer número es el límite que se establece en el estándar ISO C++ 11 (INCITS/ISO/IEC 14882-2011[2012], Anexo B) y el segundo número es el límite implementado por el compilador de Microsoft C++:

  • Niveles de anidamiento de declaraciones compuestas, estructuras de control de iteración y estructuras de control de selección: estándar de C++: 256, compilador de Microsoft C++: depende de la combinación de declaraciones anidadas, pero generalmente entre 100 y 110.

  • Parámetros en una definición de macro: estándar de C++: 256, compilador de Microsoft C++ mediante /Zc:preprocessor-:127 o : /Zc:preprocessor32767.

  • Argumentos en una invocación de macro: estándar de C++: 256, compilador de Microsoft C++ mediante /Zc:preprocessor-:127 o : /Zc:preprocessor32767.

  • Caracteres en un literal de cadena de caracteres o literal de cadena ancha (después de la concatenación): estándar de C++: 65536, compilador de Microsoft C++: 65535 caracteres de un solo byte, incluido el terminador NULL, y 32767 caracteres de doble byte, incluido el terminador NULL.

  • Niveles de definiciones anidadas de clase, estructura o unión en un único estándar struct-declaration-list de C++: 256, compilador de Microsoft C++: 16.

  • Inicializadores de miembros en una definición de constructor: estándar de C++: 6144, compilador de Microsoft C++: al menos 6144.

  • Calificaciones de alcance de un identificador: estándar de C++: 256, compilador de Microsoft C++: 127.

  • Se anidaron extern especificaciones estándar de C++: 1024, compilador de Microsoft C++: 9 (sin contar la especificación implícita extern en el ámbito global, o 10, si cuenta la especificación implícita extern en el ámbito global).

  • Argumentos de plantilla en una declaración de plantilla: estándar de C++: 1024, compilador de Microsoft C++: 2046.

Consulte también

Comportamiento no estándar