This documentation is archived and is not being maintained.

Compiler Limits

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] (247).
  • 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).

See Also

Nonstandard Behavior