|
19 | 19 | However, these quantities are only guidelines and do not determine compliance. |
20 | 20 | \begin{itemize} |
21 | 21 | \item% |
22 | | -Nesting levels of compound statements\iref{stmt.block}, |
23 | | -iteration control structures\iref{stmt.iter}, |
24 | | -and selection control structures\iref{stmt.select} [256]. |
25 | | -\item% |
26 | | -Nesting levels of conditional inclusion\iref{cpp.cond} [256]. |
27 | | -\item% |
28 | | -Pointer\iref{dcl.ptr}, |
29 | | -pointer-to-member\iref{dcl.mptr}, |
30 | | -array\iref{dcl.array}, and |
31 | | -function\iref{dcl.fct} |
32 | | -declarators (in any combination) |
33 | | -modifying a type in a declaration [256]. |
34 | | -\item% |
35 | | -Nesting levels of parenthesized expressions\iref{expr.prim.paren} within a full-expression [256]. |
| 22 | +Characters in one logical source line\iref{lex.phases} [65\,536]. |
36 | 23 | \item% |
37 | 24 | Number of |
38 | 25 | characters in an internal identifier\iref{lex.name} |
|
41 | 28 | Number of |
42 | 29 | characters in an external identifier\iref{lex.name,basic.link} [1\,024]. |
43 | 30 | \item% |
44 | | -External identifiers\iref{basic.link} in one translation unit [65\,536]. |
| 31 | +Characters in a \grammarterm{string-literal}\iref{lex.string} |
| 32 | +(after concatenation\iref{lex.phases}) [65\,536]. |
| 33 | + |
45 | 34 | \item% |
46 | 35 | Identifiers with block scope declared in one block\iref{basic.scope.block} [1\,024]. |
47 | 36 | \item% |
48 | | -Structured bindings\iref{dcl.struct.bind} introduced in one declaration [256]. |
49 | | -\item% |
50 | | -Macro identifiers\iref{cpp.replace} simultaneously defined in one |
51 | | -translation |
52 | | -unit [65\,536]. |
53 | | -\item% |
54 | | -Parameters in one function definition\iref{dcl.fct.def.general} [256]. |
| 37 | +External identifiers\iref{basic.link} in one translation unit [65\,536]. |
55 | 38 | \item% |
56 | | -Arguments in one function call\iref{expr.call} [256]. |
| 39 | +Size of an object\iref{intro.object} [262\,144]. |
| 40 | + |
57 | 41 | \item% |
58 | | -Parameters in one macro definition\iref{cpp.replace} [256]. |
| 42 | +Nesting levels of parenthesized expressions\iref{expr.prim.paren} within a full-expression [256]. |
59 | 43 | \item% |
60 | | -Arguments in one macro invocation\iref{cpp.replace} [256]. |
| 44 | +Scope qualifications of one identifier\iref{expr.prim.id.qual} [256]. |
61 | 45 | \item% |
62 | | -Characters in one logical source line\iref{lex.phases} [65\,536]. |
| 46 | +Lambda-captures in one \grammarterm{lambda-expression}\iref{expr.prim.lambda.capture} [256]. |
63 | 47 | \item% |
64 | | -Characters in a \grammarterm{string-literal}\iref{lex.string} |
65 | | -(after concatenation\iref{lex.phases}) [65\,536]. |
| 48 | +Arguments in one function call\iref{expr.call} [256]. |
66 | 49 | \item% |
67 | | -Size of an object\iref{intro.object} [262\,144]. |
| 50 | +Full-expressions evaluated within a core constant expression\iref{expr.const} [1\,048\,576]. |
| 51 | + |
68 | 52 | \item% |
69 | | -Nesting levels for |
70 | | -\tcode{\#include} |
71 | | -files\iref{cpp.include} [256]. |
| 53 | +Nesting levels of compound statements\iref{stmt.block}, |
| 54 | +iteration control structures\iref{stmt.iter}, |
| 55 | +and selection control structures\iref{stmt.select} [256]. |
72 | 56 | \item% |
73 | 57 | Case labels for a |
74 | 58 | \keyword{switch} |
75 | 59 | statement\iref{stmt.switch} (excluding those for any nested |
76 | 60 | \keyword{switch} |
77 | 61 | statements) |
78 | 62 | [16\,384]. |
| 63 | + |
79 | 64 | \item% |
80 | | -Non-static data members (including inherited ones) in a single class\iref{class.mem} [16\,384]. |
| 65 | +Recursive constexpr function invocations\iref{dcl.constexpr} [512]. |
81 | 66 | \item% |
82 | | -Lambda-captures in one \grammarterm{lambda-expression}\iref{expr.prim.lambda.capture} [256]. |
| 67 | +Pointer\iref{dcl.ptr}, |
| 68 | +pointer-to-member\iref{dcl.mptr}, |
| 69 | +array\iref{dcl.array}, and |
| 70 | +function\iref{dcl.fct} |
| 71 | +declarators (in any combination) |
| 72 | +modifying a type in a declaration [256]. |
| 73 | +\item% |
| 74 | +\grammarterm{initializer-clause}{s} in one \grammarterm{braced-init-list}\iref{dcl.init} [16\,384]. |
| 75 | +\item% |
| 76 | +Parameters in one function definition\iref{dcl.fct.def.general} [256]. |
| 77 | +\item% |
| 78 | +Structured bindings\iref{dcl.struct.bind} introduced in one declaration [256]. |
83 | 79 | \item% |
84 | 80 | Enumeration constants in a single enumeration\iref{dcl.enum} [4\,096]. |
85 | 81 | \item% |
| 82 | +Nested \grammarterm{linkage-specification}s\iref{dcl.link} [1\,024]. |
| 83 | + |
| 84 | +\item% |
| 85 | +Class members declared in a single \grammarterm{member-specification} |
| 86 | +(including member functions)\iref{class.mem} [4\,096]. |
| 87 | +\item% |
| 88 | +Non-static data members (including inherited ones) in a single class\iref{class.mem} [16\,384]. |
| 89 | +\item% |
| 90 | +Static data members of a class\iref{class.static.data} [1\,024]. |
| 91 | +\item% |
86 | 92 | Levels of nested class definitions\iref{class.nest} |
87 | 93 | in a single |
88 | 94 | \grammarterm{member-specification} |
89 | 95 | [256]. |
90 | 96 | \item% |
91 | | -Functions registered by |
92 | | -\tcode{atexit()}\iref{support.start.term} [32]. |
93 | | -\item% |
94 | | -Functions registered by |
95 | | -\tcode{at_quick_exit()}\iref{support.start.term} [32]. |
| 97 | +Direct base classes for a single class\iref{class.derived} [1\,024]. |
96 | 98 | \item% |
97 | 99 | Direct and indirect base classes\iref{class.derived} [16\,384]. |
98 | 100 | \item% |
99 | | -Direct base classes for a single class\iref{class.derived} [1\,024]. |
100 | | -\item% |
101 | | -Class members declared in a single \grammarterm{member-specification} |
102 | | -(including member functions)\iref{class.mem} [4\,096]. |
| 101 | +Direct and indirect virtual bases of a class\iref{class.mi} [1\,024]. |
103 | 102 | \item% |
104 | 103 | Final overriding virtual functions in a class, |
105 | 104 | accessible or not\iref{class.virtual} [16\,384]. |
106 | 105 | \item% |
107 | | -Direct and indirect virtual bases of a class\iref{class.mi} [1\,024]. |
108 | | -\item% |
109 | | -Static data members of a class\iref{class.static.data} [1\,024]. |
| 106 | +Access control declarations in a class\iref{class.access.spec} [4\,096]. |
110 | 107 | \item% |
111 | 108 | Friend declarations in a class\iref{class.friend} [4\,096]. |
112 | 109 | \item% |
113 | | -Access control declarations in a class\iref{class.access.spec} [4\,096]. |
114 | | -\item% |
115 | 110 | Member initializers in a constructor definition\iref{class.base.init} [6\,144]. |
| 111 | + |
116 | 112 | \item% |
117 | | -\grammarterm{initializer-clause}{s} in one \grammarterm{braced-init-list}\iref{dcl.init} [16\,384]. |
| 113 | +Template parameters in a template declaration\iref{temp.param} [1\,024]. |
118 | 114 | \item% |
119 | | -Scope qualifications of one identifier\iref{expr.prim.id.qual} [256]. |
| 115 | +Recursively nested template instantiations\iref{temp.inst}, including substitution |
| 116 | +during template argument deduction\iref{temp.deduct} [1\,024]. |
| 117 | + |
120 | 118 | \item% |
121 | | -Nested \grammarterm{linkage-specification}s\iref{dcl.link} [1\,024]. |
| 119 | +Handlers per try block\iref{except.handle} [256]. |
| 120 | + |
122 | 121 | \item% |
123 | | -Recursive constexpr function invocations\iref{dcl.constexpr} [512]. |
| 122 | +Nesting levels of conditional inclusion\iref{cpp.cond} [256]. |
124 | 123 | \item% |
125 | | -Full-expressions evaluated within a core constant expression\iref{expr.const} [1\,048\,576]. |
| 124 | +Nesting levels for |
| 125 | +\tcode{\#include} |
| 126 | +files\iref{cpp.include} [256]. |
126 | 127 | \item% |
127 | | -Template parameters in a template declaration\iref{temp.param} [1\,024]. |
| 128 | +Parameters in one macro definition\iref{cpp.replace} [256]. |
128 | 129 | \item% |
129 | | -Recursively nested template instantiations\iref{temp.inst}, including substitution |
130 | | -during template argument deduction\iref{temp.deduct} [1\,024]. |
| 130 | +Arguments in one macro invocation\iref{cpp.replace} [256]. |
131 | 131 | \item% |
132 | | -Handlers per try block\iref{except.handle} [256]. |
| 132 | +Macro identifiers\iref{cpp.replace} simultaneously defined in one |
| 133 | +translation |
| 134 | +unit [65\,536]. |
| 135 | + |
| 136 | +\item% |
| 137 | +Functions registered by |
| 138 | +\tcode{atexit()}\iref{support.start.term} [32]. |
| 139 | +\item% |
| 140 | +Functions registered by |
| 141 | +\tcode{at_quick_exit()}\iref{support.start.term} [32]. |
133 | 142 | \item% |
134 | 143 | Number of placeholders\iref{func.bind.place} [10]. |
135 | 144 | \item% |
|
0 commit comments