Compiler Limits

Updated: September 2008

The C++ standard recommends limits for various language constructs. The following is a list of constructs where the Visual C++ compiler does not implement the recommended limits. The first number is the recommended limit and the second number is the limit implemented by Visual C++:

  • Nesting levels of compound statements, iteration control structures, and selection control structures [256] (256).

  • Parameters in one macro definition [256] (127).

  • Arguments in one macro invocation [256] (127).

  • Characters in a character string literal or wide string literal (after concatenation) [65536] (65535).

  • Levels of nested class, structure, or union definitions in a single struct-declaration-list [256] (16).

  • Member initializers in a constructor definition [6144] (approximately 600, memory dependent, can increase with the /Zm compiler option).

  • Scope qualifications of one identifier [256] (127).

  • Nested external specifications [1024] (10).

  • Template arguments in a template declaration [1024] (64).




September 2008

Updated the limits implemented by Visual C++.

Customer feedback.

Community Additions