Compartir a través de


Límites del compilador

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

  • Niveles de anidamiento de instrucciones compuestas, estructuras de control de la iteración y estructuras de control de selección [estándar de C++: 256] (Compilador de Visual C++: depende de la combinación de instrucciones que estén anidadas, pero suele ser entre 100 y 110).

  • Parámetros en una definición de macro [estándar de C++: 256] (Compilador de Visual C++: 127).

  • Argumentos en una llamada de macro [estándar de C++: 256] (Compilador de Visual C++ 127).

  • Caracteres en un literal de cadena de caracteres o literal de cadena ancho (después de la concatenación) [estándar de C++: 65536] (Compilador de Visual C++: 65.535 caracteres de un solo byte, incluido el terminador null, y 32.767 caracteres de doble byte, incluido el terminador null).

  • Niveles de definiciones de clase anidada, estructura o unión en una sola lista struct-declaration-list [estándar de C++: 256] (Compilador de Visual C++: 16).

  • Inicializadores de miembro en una definición de constructor [estándar de C++: 6144] (Compilador de Visual C++: 6.144 como mínimo).

  • Clasificaciones de ámbito de un identificador [estándar de C++: 256] (Compilador de Visual C++: 127).

  • Especificaciones de extern anidadas [estándar de C++: 1024] (Compilador de Visual C++: 9 (sin contar la especificación de extern implícita en el ámbito global, o 10, si se cuenta la especificación de extern implícita en el ámbito global).

  • Argumentos de plantilla en una declaración de plantilla [estándar de C++: 1024] (Compilador de Visual C++: 2046).

Vea también

Referencia

Comportamiento no estándar