diff --git a/source/compatibility.tex b/source/compatibility.tex index 8a4c359b5b..9e9e979408 100644 --- a/source/compatibility.tex +++ b/source/compatibility.tex @@ -1790,16 +1790,16 @@ nor are the C headers themselves part of \Cpp. \pnum -The headers \tcode{}\indextext{\idxhdr{ccomplex}} (\ref{ccomplex.syn}) -and \tcode{}\indextext{\idxhdr{ctgmath}} (\ref{ctgmath.syn}), as well +The headers \tcode{}\indextext{\idxhdr{ccomplex}} (\ref{depr.ccomplex.syn}) +and \tcode{}\indextext{\idxhdr{ctgmath}} (\ref{depr.ctgmath.syn}), as well as their corresponding C headers \tcode{}\indextext{\idxhdr{complex.h}} and \tcode{}\indextext{\idxhdr{tgmath.h}}, do not contain any of the content from the C standard library and instead merely include other headers from the \Cpp standard library. \pnum -The headers \tcode{}, \tcode{}~(\ref{cstdalign.syn}), -and \tcode{}~(\ref{cstdbool.syn}) are meaningless in \Cpp. Use of +The headers \tcode{}, \tcode{}~(\ref{depr.cstdalign.syn}), +and \tcode{}~(\ref{depr.cstdbool.syn}) are meaningless in \Cpp. Use of the \Cpp headers \tcode{}, \tcode{}, \tcode{}, and \tcode{} is deprecated~(\ref{depr.c.headers}). @@ -1864,7 +1864,7 @@ \pnum The token \tcode{alignas} is a keyword in this International Standard (\ref{lex.key}). It does not appear as a macro name defined -in \tcode{}\indexlibrary{\idxhdr{cstdalign}}~(\ref{cstdalign.syn}). +in \tcode{}\indexlibrary{\idxhdr{cstdalign}}~(\ref{depr.cstdalign.syn}). \rSec3[diff.header.stdbool.h]{Header \tcode{}} \indexlibrary{\idxhdr{stdbool.h}}% @@ -1873,7 +1873,7 @@ The tokens \tcode{bool}, \tcode{true}, and \tcode{false} are keywords in this International Standard (\ref{lex.key}). They do not appear as macro names defined in -\tcode{}\indexlibrary{\idxhdr{cstdbool}}~(\ref{cstdbool.syn}). +\tcode{}\indexlibrary{\idxhdr{cstdbool}}~(\ref{depr.cstdbool.syn}). \rSec3[diff.null]{Macro \tcode{NULL}} diff --git a/source/future.tex b/source/future.tex index 34ecd14bef..c613a710f7 100644 --- a/source/future.tex +++ b/source/future.tex @@ -48,6 +48,82 @@ \pnum The \grammarterm{noexcept-specifier} \tcode{throw()} is deprecated. +\rSec1[depr.cpp.headers]{\Cpp standard library headers} + +\pnum +For compatibility with prior \Cpp International Standards, +the \Cpp standard library provides headers +\tcode{}~(\ref{depr.ccomplex.syn}), +\tcode{}~(\ref{depr.cstdalign.syn}), +\tcode{}~(\ref{depr.cstdbool.syn}), +and \tcode{}~(\ref{depr.ctgmath.syn}). +The use of these headers is deprecated. + +\rSec2[depr.ccomplex.syn]{Header \tcode{} synopsis} +\indexlibrary{\idxhdr{ccomplex}}% + +\begin{codeblock} +#include +\end{codeblock} + +\pnum +The header \tcode{} +behaves as if it simply includes the header +\tcode{}~(\ref{complex.syn}). + +\rSec2[depr.cstdalign.syn]{Header \tcode{} synopsis} + +\indexlibrary{\idxcode{__alignas_is_defined}}% +\indexlibrary{\idxhdr{cstdalign}}% +\begin{codeblock} +#define @\xname{alignas_is_defined}@ 1 +\end{codeblock} + +\pnum +\indexlibrary{\idxhdr{cstdalign}}% +\indexlibrary{\idxhdr{stdalign.h}}% +The contents of the header \tcode{} are the same as the C +standard library header \tcode{}, with the following changes: +The header \tcode{} and the header \tcode{} shall not +define a macro named \tcode{alignas}. + +\xref ISO C~7.15. + +\rSec2[depr.cstdbool.syn]{Header \tcode{} synopsis} + +\indexlibrary{\idxhdr{cstdbool}}% +\indexlibrary{\idxcode{__bool_true_false_are_defined}}% +\begin{codeblock} +#define @\xname{bool_true_false_are_defined}@ 1 +\end{codeblock} + +\pnum +\indexlibrary{\idxhdr{stdbool.h}}% +The contents of the header \tcode{} are the same as the C +standard library header \tcode{}, with the following changes: +The header \tcode{} and the header \tcode{} shall not +define macros named \tcode{bool}, \tcode{true}, or \tcode{false}. + +\xref ISO C~7.18. + +\rSec2[depr.ctgmath.syn]{Header \tcode{} synopsis} + +\indexlibrary{\idxhdr{ctgmath}}% +\begin{codeblock} +#include +#include +\end{codeblock} + +\pnum +The header \tcode{} simply includes the headers +\tcode{}~(\ref{complex.syn}) +and \tcode{}~(\ref{cmath.syn}). + +\pnum +\begin{note} The overloads provided in C by type-generic macros are already +provided in \tcode{} and \tcode{} by ``sufficient'' additional +overloads.\end{note} + \rSec1[depr.c.headers]{C standard library headers} \pnum @@ -94,14 +170,6 @@ \end{floattable} -\pnum -The use of any of the \Cpp headers -\tcode{}, -\tcode{}, -\tcode{}, -or \tcode{} -is deprecated. - \pnum The header \tcode{} behaves as if it simply includes the header \tcode{}. The header \tcode{} behaves as if it simply includes the header \tcode{}. diff --git a/source/lib-intro.tex b/source/lib-intro.tex index 47a24cdf91..e40430fbb1 100644 --- a/source/lib-intro.tex +++ b/source/lib-intro.tex @@ -1281,18 +1281,19 @@ include at least the headers shown in Table~\ref{tab:cpp.headers.freestanding}. \begin{libsumtab}{\Cpp headers for freestanding implementations}{tab:cpp.headers.freestanding} - & & \tcode{} \\ \rowsep -\ref{support.types} & Types & \tcode{} \\ \rowsep -\ref{support.limits}& Implementation properties & \tcode{} \tcode{} \tcode{} \\ \rowsep -\ref{cstdint} & Integer types & \tcode{} \\ \rowsep -\ref{support.start.term}& Start and termination & \tcode{} \\ \rowsep -\ref{support.dynamic} & Dynamic memory management & \tcode{} \\ \rowsep -\ref{support.rtti} & Type identification & \tcode{} \\ \rowsep -\ref{support.exception} & Exception handling & \tcode{} \\ \rowsep -\ref{support.initlist} & Initializer lists & \tcode{} \\ \rowsep -\ref{support.runtime} & Other runtime support & \tcode{} \tcode{} \tcode{} \\ \rowsep -\ref{meta} & Type traits & \tcode{} \\ \rowsep -\ref{atomics} & Atomics & \tcode{} \\ + & & \tcode{} \\ \rowsep +\ref{support.types} & Types & \tcode{} \\ \rowsep +\ref{support.limits} & Implementation properties & \tcode{} \tcode{} \tcode{} \\ \rowsep +\ref{cstdint} & Integer types & \tcode{} \\ \rowsep +\ref{support.start.term} & Start and termination & \tcode{} \\ \rowsep +\ref{support.dynamic} & Dynamic memory management & \tcode{} \\ \rowsep +\ref{support.rtti} & Type identification & \tcode{} \\ \rowsep +\ref{support.exception} & Exception handling & \tcode{} \\ \rowsep +\ref{support.initlist} & Initializer lists & \tcode{} \\ \rowsep +\ref{support.runtime} & Other runtime support & \tcode{} \\ \rowsep +\ref{meta} & Type traits & \tcode{} \\ \rowsep +\ref{atomics} & Atomics & \tcode{} \\ \rowsep +\ref{depr.cstdalign.syn}, \ref{depr.cstdbool.syn} & Deprecated headers & \tcode{} \tcode{} \\ \end{libsumtab} \pnum diff --git a/source/numerics.tex b/source/numerics.tex index 9a7cd7b8a8..d94dab3f49 100644 --- a/source/numerics.tex +++ b/source/numerics.tex @@ -25,8 +25,7 @@ \ref{numarray} & Numeric arrays & \tcode{} \\ \rowsep \ref{numeric.ops} & Generalized numeric operations & \tcode{} \\ \rowsep \ref{c.math} & Mathematical functions for & \tcode{} \\ - & floating-point types & \tcode{} \\ - & & \tcode{} \\ + & floating-point types & \tcode{} \\ \end{libsumtab} \rSec1[numerics.defns]{Definitions} @@ -1363,18 +1362,6 @@ \tcode{complex\{0.0f, static_cast(d)\}}. \end{itemdescr} -\rSec2[ccomplex.syn]{Header \tcode{} synopsis} -\indextext{\idxhdr{ccomplex}}% -\indexlibrary{\idxhdr{ccomplex}}% - -\begin{codeblock} -#include -\end{codeblock} - -\pnum -The header \tcode{} -behaves as if it simply includes the header \tcode{}. - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -11452,21 +11439,3 @@ \end{itemdescr} \indextext{mathematical special functions|)} - -\rSec2[ctgmath.syn]{Header \tcode{} synopsis} - -\indextext{\idxhdr{ctgmath}}% -\indexlibrary{\idxhdr{ctgmath}}% -\begin{codeblock} -#include -#include -\end{codeblock} - -\pnum -The header \tcode{} simply includes the headers \tcode{} -and \tcode{}. - -\pnum -\begin{note} The overloads provided in C by type-generic macros are already -provided in \tcode{} and \tcode{} by ``sufficient'' additional -overloads.\end{note} diff --git a/source/support.tex b/source/support.tex index d3a83d28c4..bcf08f74d5 100644 --- a/source/support.tex +++ b/source/support.tex @@ -32,12 +32,10 @@ \ref{support.dynamic} & Dynamic memory management & \tcode{} \\ \rowsep \ref{support.rtti} & Type identification & \tcode{} \\ \rowsep \ref{support.exception} & Exception handling & \tcode{} \\ \rowsep -\ref{support.initlist} & Initializer lists & \tcode{} \\ \rowsep +\ref{support.initlist} & Initializer lists & \tcode{} \\ \rowsep \ref{support.runtime} & Other runtime support & \tcode{} \\ & & \tcode{} \\ - & & \tcode{} \\ & & \tcode{} \\ - & & \tcode{} \\ & & \tcode{} \\ \end{libsumtab} @@ -3732,9 +3730,7 @@ Headers \tcode{} (nonlocal jumps), \tcode{} (signal handling), -\tcode{ (alignment),} \tcode{} (variable arguments), -\tcode{} (\xname{bool_true_false_are_defined}), and \tcode{} (runtime environment \tcode{getenv, system}), provide further compatibility with C code. @@ -3846,45 +3842,6 @@ \xref ISO C~7.13. -\rSec2[cstdbool.syn]{Header \tcode{} synopsis} - -\indextext{\idxhdr{cstdbool}}% -\indexlibrary{\idxhdr{cstdbool}}% -\indexlibrary{\idxcode{__bool_true_false_are_defined}}% -\begin{codeblock} -#define @\xname{bool_true_false_are_defined}@ 1 -\end{codeblock} - -\pnum -\indextext{\idxhdr{stdbool.h}}% -\indexlibrary{\idxhdr{stdbool.h}}% -The contents of the header \tcode{} are the same as the C -standard library header \tcode{}, with the following changes: -The header \tcode{} and the header \tcode{} shall not -define macros named \tcode{bool}, \tcode{true}, or \tcode{false}. - -\xref ISO C~7.18. - -\rSec2[cstdalign.syn]{Header \tcode{} synopsis} - -\indexlibrary{\idxcode{__alignas_is_defined}}% -\indextext{\idxhdr{cstdalign}}% -\indexlibrary{\idxhdr{cstdalign}}% -\begin{codeblock} -#define @\xname{alignas_is_defined}@ 1 -\end{codeblock} - -\pnum -\indexlibrary{\idxhdr{cstdalign}}% -\indextext{\idxhdr{stdalign.h}}% -\indexlibrary{\idxhdr{stdalign.h}}% -The contents of the header \tcode{} are the same as the C -standard library header \tcode{}, with the following changes: -The header \tcode{} and the header \tcode{} shall not -define a macro named \tcode{alignas}. - -\xref ISO C~7.15. - \rSec2[csignal.syn]{Header \tcode{} synopsis} \indextext{\idxhdr{csignal}}%