Skip to content

Commit 4709cdb

Browse files
committed
[implimits] reorder Annex B by clause number
Reorder the entries in the list of implementation limits according to their clause number. This ordering neatly groups related items such as all the preprocessor limits, and segragates library from core language limits. It loses some of the local organization of the original ordering, such as all parameter and argument list lengths being colocated.
1 parent 2ab6288 commit 4709cdb

File tree

1 file changed

+66
-57
lines changed

1 file changed

+66
-57
lines changed

source/limits.tex

Lines changed: 66 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,7 @@
88
a potential minimum value for that quantity.
99
\begin{itemize}
1010
\item%
11-
Nesting levels of compound statements\iref{stmt.block},
12-
iteration control structures\iref{stmt.iter},
13-
and selection control structures\iref{stmt.select} [256].
14-
\item%
15-
Nesting levels of conditional inclusion\iref{cpp.cond} [256].
16-
\item%
17-
Pointer\iref{dcl.ptr},
18-
pointer-to-member\iref{dcl.mptr},
19-
array\iref{dcl.array}, and
20-
function\iref{dcl.fct}
21-
declarators (in any combination)
22-
modifying a type in a declaration [256].
23-
\item%
24-
Nesting levels of parenthesized expressions\iref{expr.prim.paren} within a full-expression [256].
11+
Characters in one logical source line\iref{lex.phases} [65\,536].
2512
\item%
2613
Number of
2714
characters in an internal identifier\iref{lex.name}
@@ -30,95 +17,117 @@
3017
Number of
3118
characters in an external identifier\iref{lex.name,basic.link} [1\,024].
3219
\item%
33-
External identifiers\iref{basic.link} in one translation unit [65\,536].
20+
Characters in a \grammarterm{string-literal}\iref{lex.string}
21+
(after concatenation\iref{lex.phases}) [65\,536].
22+
3423
\item%
3524
Identifiers with block scope declared in one block\iref{basic.scope.block} [1\,024].
3625
\item%
37-
Structured bindings\iref{dcl.struct.bind} introduced in one declaration [256].
38-
\item%
39-
Macro identifiers\iref{cpp.replace} simultaneously defined in one
40-
translation
41-
unit [65\,536].
42-
\item%
43-
Parameters in one function definition\iref{dcl.fct.def.general} [256].
26+
External identifiers\iref{basic.link} in one translation unit [65\,536].
4427
\item%
45-
Arguments in one function call\iref{expr.call} [256].
28+
Size of an object\iref{intro.object} [262\,144].
29+
4630
\item%
47-
Parameters in one macro definition\iref{cpp.replace} [256].
31+
Nesting levels of parenthesized expressions\iref{expr.prim.paren} within a full-expression [256].
4832
\item%
49-
Arguments in one macro invocation\iref{cpp.replace} [256].
33+
Scope qualifications of one identifier\iref{expr.prim.id.qual} [256].
5034
\item%
51-
Characters in one logical source line\iref{lex.phases} [65\,536].
35+
Lambda-captures in one \grammarterm{lambda-expression}\iref{expr.prim.lambda.capture} [256].
5236
\item%
53-
Characters in a \grammarterm{string-literal}\iref{lex.string}
54-
(after concatenation\iref{lex.phases}) [65\,536].
37+
Arguments in one function call\iref{expr.call} [256].
5538
\item%
56-
Size of an object\iref{intro.object} [262\,144].
39+
Full-expressions evaluated within a core constant expression\iref{expr.const} [1\,048\,576].
40+
5741
\item%
58-
Nesting levels for
59-
\tcode{\#include}
60-
files\iref{cpp.include} [256].
42+
Nesting levels of compound statements\iref{stmt.block},
43+
iteration control structures\iref{stmt.iter},
44+
and selection control structures\iref{stmt.select} [256].
6145
\item%
6246
Case labels for a
6347
\keyword{switch}
6448
statement\iref{stmt.switch} (excluding those for any nested
6549
\keyword{switch}
6650
statements)
6751
[16\,384].
52+
6853
\item%
69-
Non-static data members (including inherited ones) in a single class\iref{class.mem} [16\,384].
54+
Recursive constexpr function invocations\iref{dcl.constexpr} [512].
7055
\item%
71-
Lambda-captures in one \grammarterm{lambda-expression}\iref{expr.prim.lambda.capture} [256].
56+
Pointer\iref{dcl.ptr},
57+
pointer-to-member\iref{dcl.mptr},
58+
array\iref{dcl.array}, and
59+
function\iref{dcl.fct}
60+
declarators (in any combination)
61+
modifying a type in a declaration [256].
62+
\item%
63+
\grammarterm{initializer-clause}{s} in one \grammarterm{braced-init-list}\iref{dcl.init} [16\,384].
64+
\item%
65+
Parameters in one function definition\iref{dcl.fct.def.general} [256].
66+
\item%
67+
Structured bindings\iref{dcl.struct.bind} introduced in one declaration [256].
7268
\item%
7369
Enumeration constants in a single enumeration\iref{dcl.enum} [4\,096].
7470
\item%
71+
Nested \grammarterm{linkage-specification}s\iref{dcl.link} [1\,024].
72+
73+
\item%
74+
Class members declared in a single \grammarterm{member-specification}
75+
(including member functions)\iref{class.mem} [4\,096].
76+
\item%
77+
Non-static data members (including inherited ones) in a single class\iref{class.mem} [16\,384].
78+
\item%
79+
Static data members of a class\iref{class.static.data} [1\,024].
80+
\item%
7581
Levels of nested class definitions\iref{class.nest}
7682
in a single
7783
\grammarterm{member-specification}
7884
[256].
7985
\item%
80-
Functions registered by
81-
\tcode{atexit()}\iref{support.start.term} [32].
82-
\item%
83-
Functions registered by
84-
\tcode{at_quick_exit()}\iref{support.start.term} [32].
86+
Direct base classes for a single class\iref{class.derived} [1\,024].
8587
\item%
8688
Direct and indirect base classes\iref{class.derived} [16\,384].
8789
\item%
88-
Direct base classes for a single class\iref{class.derived} [1\,024].
89-
\item%
90-
Class members declared in a single \grammarterm{member-specification}
91-
(including member functions)\iref{class.mem} [4\,096].
90+
Direct and indirect virtual bases of a class\iref{class.mi} [1\,024].
9291
\item%
9392
Final overriding virtual functions in a class,
9493
accessible or not\iref{class.virtual} [16\,384].
9594
\item%
96-
Direct and indirect virtual bases of a class\iref{class.mi} [1\,024].
97-
\item%
98-
Static data members of a class\iref{class.static.data} [1\,024].
95+
Access control declarations in a class\iref{class.access.spec} [4\,096].
9996
\item%
10097
Friend declarations in a class\iref{class.friend} [4\,096].
10198
\item%
102-
Access control declarations in a class\iref{class.access.spec} [4\,096].
103-
\item%
10499
Member initializers in a constructor definition\iref{class.base.init} [6\,144].
100+
105101
\item%
106-
\grammarterm{initializer-clause}{s} in one \grammarterm{braced-init-list}\iref{dcl.init} [16\,384].
102+
Template parameters in a template declaration\iref{temp.param} [1\,024].
107103
\item%
108-
Scope qualifications of one identifier\iref{expr.prim.id.qual} [256].
104+
Recursively nested template instantiations\iref{temp.inst}, including substitution
105+
during template argument deduction\iref{temp.deduct} [1\,024].
106+
109107
\item%
110-
Nested \grammarterm{linkage-specification}s\iref{dcl.link} [1\,024].
108+
Handlers per try block\iref{except.handle} [256].
109+
111110
\item%
112-
Recursive constexpr function invocations\iref{dcl.constexpr} [512].
111+
Nesting levels of conditional inclusion\iref{cpp.cond} [256].
113112
\item%
114-
Full-expressions evaluated within a core constant expression\iref{expr.const} [1\,048\,576].
113+
Nesting levels for
114+
\tcode{\#include}
115+
files\iref{cpp.include} [256].
115116
\item%
116-
Template parameters in a template declaration\iref{temp.param} [1\,024].
117+
Parameters in one macro definition\iref{cpp.replace} [256].
117118
\item%
118-
Recursively nested template instantiations\iref{temp.inst}, including substitution
119-
during template argument deduction\iref{temp.deduct} [1\,024].
119+
Arguments in one macro invocation\iref{cpp.replace} [256].
120120
\item%
121-
Handlers per try block\iref{except.handle} [256].
121+
Macro identifiers\iref{cpp.replace} simultaneously defined in one
122+
translation
123+
unit [65\,536].
124+
125+
\item%
126+
Functions registered by
127+
\tcode{atexit()}\iref{support.start.term} [32].
128+
\item%
129+
Functions registered by
130+
\tcode{at_quick_exit()}\iref{support.start.term} [32].
122131
\item%
123132
Number of placeholders\iref{func.bind.place} [10].
124133
\item%

0 commit comments

Comments
 (0)