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