Skip to content

Commit f20464d

Browse files
burblebeetkoeppe
authored andcommitted
CWG2891 Normative status of implementation limits
1 parent 8400611 commit f20464d

File tree

2 files changed

+15
-20
lines changed

2 files changed

+15
-20
lines changed

source/intro.tex

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -723,15 +723,14 @@
723723
\item
724724
If a program contains no violations of the rules in
725725
\ref{lex} through \ref{\lastlibchapter} as well as those specified in \ref{depr},
726-
a conforming implementation shall,
727-
in accordance with the resource limits specified in \ref{implimits},
728-
accept and correctly execute
726+
a conforming implementation shall accept and correctly execute
729727
\begin{footnote}
730728
``Correct execution'' can include undefined behavior
731729
and erroneous behavior, depending on
732730
the data being processed; see \ref{intro.defs} and~\ref{intro.execution}.
733731
\end{footnote}
734-
that program.
732+
that program,
733+
except when the implementation's limitations (see below) are exceeded.
735734
\item
736735
\indextext{behavior!undefined}%
737736
If a program contains a violation of a rule for which no diagnostic is required,
@@ -812,6 +811,13 @@
812811
described in \ref{lex} through \ref{cpp} and
813812
the subset of the library facilities described in \ref{compliance}.
814813

814+
\pnum
815+
An implementation is encouraged to document its limitations in
816+
the size or complexity of the programs it can successfully process,
817+
if possible and where known.
818+
\ref{implimits} lists some quantities that can be subject to limitations and
819+
a potential minimum supported value for each quantity.
820+
815821
\pnum
816822
A conforming implementation may have extensions (including
817823
additional library functions), provided they do not alter the

source/limits.tex

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,11 @@
11
%!TEX root = std.tex
2-
\normannex{implimits}{Implementation quantities}
2+
\infannex{implimits}{Implementation quantities}
33

44
\pnum
5-
Because computers are finite, \Cpp{} implementations are inevitably
6-
limited in the size of the programs they can successfully process.
7-
Every implementation shall
8-
document those limitations where known.
9-
This documentation may cite fixed limits where they
10-
exist, say how to compute variable limits as a function
11-
of available resources, or say that fixed limits do not exist
12-
or are unknown.
13-
14-
\pnum
15-
The following list describes quantities that, among others, may be
16-
constrained by implementations.
17-
The bracketed number following each quantity is recommended
18-
as the minimum for that quantity.
19-
However, these quantities are only guidelines and do not determine compliance.
5+
Implementations can exhibit limitations for various quantities;
6+
some possibilities are presented in the following list.
7+
The bracketed number following each quantity is
8+
a potential minimum value for that quantity.
209
\begin{itemize}
2110
\item%
2211
Nesting levels of compound statements\iref{stmt.block},

0 commit comments

Comments
 (0)