|
110 | 110 | C standard library, the \Cpp{} standard library provides
|
111 | 111 | the \defnx{C headers}{headers!C library} shown in \tref{future.c.headers}.
|
112 | 112 |
|
113 |
| -\begin{floattable}{C headers}{tab:future.c.headers} |
| 113 | +\begin{multicolfloattable}{C headers}{tab:future.c.headers} |
114 | 114 | {lllll}
|
115 |
| -\topline |
| 115 | +\tcode{<assert.h>} \\ |
| 116 | +\tcode{<complex.h>} \\ |
| 117 | +\tcode{<ctype.h>} \\ |
| 118 | +\tcode{<errno.h>} \\ |
| 119 | +\tcode{<fenv.h>} \\ |
| 120 | +\tcode{<float.h>} \\ |
| 121 | +\columnbreak |
| 122 | +\tcode{<inttypes.h>} \\ |
| 123 | +\tcode{<iso646.h>} \\ |
| 124 | +\tcode{<limits.h>} \\ |
| 125 | +\tcode{<locale.h>} \\ |
| 126 | +\tcode{<math.h>} \\ |
| 127 | +\tcode{<setjmp.h>} \\ |
| 128 | +\columnbreak |
| 129 | +\tcode{<signal.h>} \\ |
| 130 | +\tcode{<stdalign.h>} \\ |
| 131 | +\tcode{<stdarg.h>} \\ |
| 132 | +\tcode{<stdbool.h>} \\ |
| 133 | +\tcode{<stddef.h>} \\ |
| 134 | +\tcode{<stdint.h>} \\ |
| 135 | +\columnbreak |
| 136 | +\tcode{<stdio.h>} \\ |
| 137 | +\tcode{<stdlib.h>} \\ |
| 138 | +\tcode{<string.h>} \\ |
| 139 | +\tcode{<tgmath.h>} \\ |
| 140 | +\tcode{<time.h>} \\ |
| 141 | +\tcode{<uchar.h>} \\ |
| 142 | +\columnbreak |
| 143 | +\tcode{<wchar.h>} \\ |
| 144 | +\tcode{<wctype.h>} \\ |
| 145 | +\end{multicolfloattable} |
| 146 | + |
| 147 | +\rSec2[depr.complex.h.syn]{Header \tcode{<complex.h>} synopsis} |
| 148 | + |
| 149 | +\indexhdr{complex.h}% |
| 150 | +\begin{codeblock} |
| 151 | +#include <complex> |
| 152 | +\end{codeblock} |
| 153 | + |
| 154 | +\pnum |
| 155 | +The header \tcode{<complex.h>} |
| 156 | +behaves as if it simply includes the header |
| 157 | +\tcode{<complex>}\iref{complex.syn}. |
| 158 | + |
| 159 | +\pnum |
| 160 | +\begin{note} |
| 161 | +Names introduced by \tcode{<complex>} in namespace \tcode{std} |
| 162 | +are not placed into the global namespace scope by \tcode{<complex.h>}. |
| 163 | +\end{note} |
| 164 | + |
| 165 | +\rSec2[depr.iso646.h.syn]{Header \tcode{<iso646.h>} synopsis} |
| 166 | + |
| 167 | +\indexhdr{iso646.h}% |
| 168 | +\pnum |
| 169 | +The \Cpp{} header \tcode{<iso646.h>} is empty. |
| 170 | +\begin{note} |
| 171 | +\tcode{and}, |
| 172 | +\tcode{and_eq}, |
| 173 | +\tcode{bitand}, |
| 174 | +\tcode{bitor}, |
| 175 | +\tcode{compl}, |
| 176 | +\tcode{not_eq}, |
| 177 | +\tcode{not}, |
| 178 | +\tcode{or}, |
| 179 | +\tcode{or_eq}, |
| 180 | +\tcode{xor}, and |
| 181 | +\tcode{xor_eq} |
| 182 | +are keywords in this International Standard\iref{lex.key}. |
| 183 | +\end{note} |
| 184 | + |
| 185 | +\rSec2[depr.stdalign.h.syn]{Header \tcode{<stdalign.h>} synopsis} |
| 186 | + |
| 187 | +\indexlibrary{\idxcode{__alignas_is_defined}}% |
| 188 | +\indexhdr{stdalign.h}% |
| 189 | +\begin{codeblock} |
| 190 | +#define @\xname{alignas_is_defined}@ 1 |
| 191 | +\end{codeblock} |
| 192 | + |
| 193 | +\pnum |
| 194 | +\indexhdr{stdalign.h}% |
| 195 | +The contents of the \Cpp{} header \tcode{<stdalign.h>} are the same as the C |
| 196 | +standard library header \tcode{<stdalign.h>}, with the following changes: |
| 197 | +The header \tcode{<stdalign.h>} does not |
| 198 | +define a macro named \tcode{alignas}. |
| 199 | + |
| 200 | +\xrefc{7.15} |
116 | 201 |
|
117 |
| -\tcode{<assert.h>} & |
118 |
| -\tcode{<inttypes.h>} & |
119 |
| -\tcode{<signal.h>} & |
120 |
| -\tcode{<stdio.h>} & |
121 |
| -\tcode{<wchar.h>} \\ |
| 202 | +\rSec2[depr.stdbool.h.syn]{Header \tcode{<stdbool.h>} synopsis} |
122 | 203 |
|
123 |
| -\tcode{<complex.h>} & |
124 |
| -\tcode{<iso646.h>} & |
125 |
| -\tcode{<stdalign.h>} & |
126 |
| -\tcode{<stdlib.h>} & |
127 |
| -\tcode{<wctype.h>} \\ |
| 204 | +\indexhdr{stdbool.h}% |
| 205 | +\indexlibrary{\idxcode{__bool_true_false_are_defined}}% |
| 206 | +\begin{codeblock} |
| 207 | +#define @\xname{bool_true_false_are_defined}@ 1 |
| 208 | +\end{codeblock} |
| 209 | + |
| 210 | +\pnum |
| 211 | +\indexhdr{stdbool.h}% |
| 212 | +The contents of the \Cpp{} header \tcode{<stdbool.h>} are the same as the C |
| 213 | +standard library header \tcode{<stdbool.h>}, with the following changes: |
| 214 | +The header \tcode{<stdbool.h>} does not |
| 215 | +define macros named \tcode{bool}, \tcode{true}, or \tcode{false}. |
128 | 216 |
|
129 |
| -\tcode{<ctype.h>} & |
130 |
| -\tcode{<limits.h>} & |
131 |
| -\tcode{<stdarg.h>} & |
132 |
| -\tcode{<string.h>} & \\ |
| 217 | +\xrefc{7.18} |
133 | 218 |
|
134 |
| -\tcode{<errno.h>} & |
135 |
| -\tcode{<locale.h>} & |
136 |
| -\tcode{<stdbool.h>} & |
137 |
| -\tcode{<tgmath.h>} & \\ |
| 219 | +\rSec2[depr.tgmath.h.syn]{Header \tcode{<tgmath.h>} synopsis} |
138 | 220 |
|
139 |
| -\tcode{<fenv.h>} & |
140 |
| -\tcode{<math.h>} & |
141 |
| -\tcode{<stddef.h>} & |
142 |
| -\tcode{<time.h>} & \\ |
| 221 | +\indexhdr{tgmath.h}% |
| 222 | +\begin{codeblock} |
| 223 | +#include <cmath> |
| 224 | +#include <complex> |
| 225 | +\end{codeblock} |
143 | 226 |
|
144 |
| -\tcode{<float.h>} & |
145 |
| -\tcode{<setjmp.h>} & |
146 |
| -\tcode{<stdint.h>} & |
147 |
| -\tcode{<uchar.h>} & \\ |
| 227 | +\pnum |
| 228 | +The header \tcode{<tgmath.h>} |
| 229 | +behaves as if it simply includes the headers |
| 230 | +\tcode{<cmath>}\iref{cmath.syn} and |
| 231 | +\tcode{<complex>}\iref{complex.syn}. |
148 | 232 |
|
149 |
| -\end{floattable} |
| 233 | +\pnum |
| 234 | +\begin{note} The overloads provided in C by type-generic macros are already |
| 235 | +provided in \tcode{<complex>} and \tcode{<cmath>} by ``sufficient'' additional |
| 236 | +overloads.\end{note} |
150 | 237 |
|
151 | 238 | \pnum
|
152 |
| -The header \tcode{<complex.h>} behaves as if it simply includes the header \tcode{<complex>}\iref{complex.syn}. |
153 |
| -The header \tcode{<tgmath.h>} behaves as if it simply includes the headers \tcode{<complex>}\iref{complex.syn} |
154 |
| -and \tcode{<cmath>}\iref{cmath.syn}. |
| 239 | +\begin{note} |
| 240 | +Names introduced by \tcode{<cmath>} or \tcode{<complex>} |
| 241 | +in namespace \tcode{std} |
| 242 | +are not placed into the global namespace scope by \tcode{<tgmath.h>}. |
| 243 | +\end{note} |
| 244 | + |
| 245 | +\rSec2[depr.c.headers.other]{Other C headers} |
155 | 246 |
|
156 | 247 | \pnum
|
157 |
| -Every other C header, each of |
| 248 | +Every C header |
| 249 | +other than |
| 250 | +\tcode{<complex.h>}, |
| 251 | +\tcode{<iso646.h>}, |
| 252 | +\tcode{<stdalign.h>}, |
| 253 | +\tcode{<stdbool.h>}, and |
| 254 | +\tcode{<tgmath.h>}, |
| 255 | +each of |
158 | 256 | which has a name of the form
|
159 | 257 | \indextext{header!C}%
|
160 |
| -\tcode{name.h}, |
| 258 | +\tcode{<\placeholder{name}.h>}, |
161 | 259 | behaves as if each name placed in the standard library namespace by
|
162 | 260 | the corresponding
|
163 |
| -\tcode{c\textit{name}} |
| 261 | +\tcode{<c\placeholder{name}>} |
164 | 262 | header is placed within
|
165 | 263 | the global namespace scope,
|
166 | 264 | except for the functions described in \ref{sf.cmath},
|
|
188 | 286 | much as in the C Standard. It may also provide these names within
|
189 | 287 | the namespace \tcode{std}.
|
190 | 288 | \end{example}
|
191 |
| - |
192 | 289 | \rSec1[depr.relops]{Relational operators}
|
193 | 290 |
|
194 | 291 | \pnum
|
|
0 commit comments