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