Skip to content

Commit a73b136

Browse files
committed
CWG2891 Normative status of implementation limits
1 parent f811dc0 commit a73b136

File tree

2 files changed

+15
-19
lines changed

2 files changed

+15
-19
lines changed

source/intro.tex

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -723,15 +723,15 @@
723723
\item
724724
If a program contains no violations of the rules in
725725
\ref{lex} through \ref{\lastlibchapter} and \ref{depr},
726-
a conforming implementation shall,
727-
within its resource limits as described in \ref{implimits},
726+
a conforming implementation shall
728727
accept and correctly execute
729728
\begin{footnote}
730729
``Correct execution'' can include undefined behavior
731730
and erroneous behavior, depending on
732731
the data being processed; see \ref{intro.defs} and~\ref{intro.execution}.
733732
\end{footnote}
734-
that program.
733+
that program,
734+
except when the implementation's limitations (see below) are exceeded.
735735
\item
736736
\indextext{behavior!undefined}%
737737
If a program contains a violation of a rule for which no diagnostic is required,
@@ -812,6 +812,13 @@
812812
described in \ref{lex} through \ref{cpp} and
813813
the subset of the library facilities described in \ref{compliance}.
814814

815+
\pnum
816+
An implementation is encouraged to document its limitations in
817+
the size or complexity of the programs it can successfully process,
818+
if possible and where known.
819+
\ref{implimits} lists some quantities that can be subject to limitations and
820+
a potential minimum supported value for each quantity.
821+
815822
\pnum
816823
A conforming implementation may have extensions (including
817824
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 limits may constrain quantities
16-
that include those described below or others.
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)