From Jason Turner

[depr.c.headers]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpwkhwjymn/{from.md → to.md} +74 -25
tmp/tmpwkhwjymn/{from.md → to.md} RENAMED
@@ -1,36 +1,85 @@
1
- ## C standard library headers <a id="depr.c.headers">[[depr.c.headers]]</a>
2
 
3
  For compatibility with the C standard library, the C++ standard library
4
- provides the *C headers* shown in Table  [[tab:future.c.headers]].
5
 
6
- **Table: C headers** <a id="tab:future.c.headers">[tab:future.c.headers]</a>
7
-
8
- | | | | | |
9
- | ------------- | -------------- | -------------- | ------------ | ------------ |
10
- | `<assert.h>` | `<inttypes.h>` | `<signal.h>` | `<stdio.h>` | `<wchar.h>` |
11
- | `<complex.h>` | `<iso646.h>` | `<stdalign.h>` | `<stdlib.h>` | `<wctype.h>` |
12
- | `<ctype.h>` | `<limits.h>` | `<stdarg.h>` | `<string.h>` | |
13
- | `<errno.h>` | `<locale.h>` | `<stdbool.h>` | `<tgmath.h>` | |
14
- | `<fenv.h>` | `<math.h>` | `<stddef.h>` | `<time.h>` | |
15
- | `<float.h>` | `<setjmp.h>` | `<stdint.h>` | `<uchar.h>` | |
16
 
 
 
 
17
 
18
  The header `<complex.h>` behaves as if it simply includes the header
19
- `<ccomplex>`. The header `<tgmath.h>` behaves as if it simply includes
20
- the header `<ctgmath>`.
21
-
22
- Every other C header, each of which has a name of the form `name.h`,
23
- behaves as if each name placed in the standard library namespace by the
24
- corresponding `cname` header is placed within the global namespace
25
- scope, except for the functions described in [[sf.cmath]], the
26
- declaration of `std::byte` ([[cstddef.syn]]), and the functions and
27
- function templates described in [[support.types.byteops]]. It is
28
- unspecified whether these names are first declared or defined within
29
- namespace scope ([[basic.scope.namespace]]) of the namespace `std` and
30
- are then injected into the global namespace scope by explicit
31
- *using-declaration*s ([[namespace.udecl]]).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  [*Example 1*: The header `<cstdlib>` assuredly provides its
34
  declarations and definitions within the namespace `std`. It may also
35
  provide these names within the global namespace. The header `<stdlib.h>`
36
  assuredly provides the same declarations and definitions within the
 
1
+ ## C headers <a id="depr.c.headers">[[depr.c.headers]]</a>
2
 
3
  For compatibility with the C standard library, the C++ standard library
4
+ provides the *C headers* shown in [[depr.c.headers]].
5
 
6
+ ### Header `<complex.h>` synopsis <a id="depr.complex.h.syn">[[depr.complex.h.syn]]</a>
 
 
 
 
 
 
 
 
 
7
 
8
+ ``` cpp
9
+ #include <complex>
10
+ ```
11
 
12
  The header `<complex.h>` behaves as if it simply includes the header
13
+ `<complex>`.
14
+
15
+ [*Note 1*: Names introduced by `<complex>` in namespace `std` are not
16
+ placed into the global namespace scope by `<complex.h>`. — *end note*]
17
+
18
+ ### Header `<iso646.h>` synopsis <a id="depr.iso646.h.syn">[[depr.iso646.h.syn]]</a>
19
+
20
+ The C++ header `<iso646.h>` is empty.
21
+
22
+ [*Note 1*: `and`, `and_eq`, `bitand`, `bitor`, `compl`, `not_eq`,
23
+ `not`, `or`, `or_eq`, `xor`, and `xor_eq` are keywords in this
24
+ International Standard [[lex.key]]. *end note*]
25
+
26
+ ### Header `<stdalign.h>` synopsis <a id="depr.stdalign.h.syn">[[depr.stdalign.h.syn]]</a>
27
+
28
+ ``` cpp
29
+ #define __alignas_is_defined 1
30
+ ```
31
+
32
+ The contents of the C++ header `<stdalign.h>` are the same as the C
33
+ standard library header `<stdalign.h>`, with the following changes: The
34
+ header `<stdalign.h>` does not define a macro named `alignas`.
35
+
36
+ See also: ISO C 7.15
37
+
38
+ ### Header `<stdbool.h>` synopsis <a id="depr.stdbool.h.syn">[[depr.stdbool.h.syn]]</a>
39
+
40
+ ``` cpp
41
+ #define __bool_true_false_are_defined 1
42
+ ```
43
+
44
+ The contents of the C++ header `<stdbool.h>` are the same as the C
45
+ standard library header `<stdbool.h>`, with the following changes: The
46
+ header `<stdbool.h>` does not define macros named `bool`, `true`, or
47
+ `false`.
48
+
49
+ See also: ISO C 7.18
50
+
51
+ ### Header `<tgmath.h>` synopsis <a id="depr.tgmath.h.syn">[[depr.tgmath.h.syn]]</a>
52
+
53
+ ``` cpp
54
+ #include <cmath>
55
+ #include <complex>
56
+ ```
57
+
58
+ The header `<tgmath.h>` behaves as if it simply includes the headers
59
+ `<cmath>` and `<complex>`.
60
+
61
+ [*Note 1*: The overloads provided in C by type-generic macros are
62
+ already provided in `<complex>` and `<cmath>` by “sufficient” additional
63
+ overloads. — *end note*]
64
+
65
+ [*Note 2*: Names introduced by `<cmath>` or `<complex>` in namespace
66
+ `std` are not placed into the global namespace scope by
67
+ `<tgmath.h>`. — *end note*]
68
+
69
+ ### Other C headers <a id="depr.c.headers.other">[[depr.c.headers.other]]</a>
70
+
71
+ Every C header other than , , , , and , each of which has a name of the
72
+ form `<name.h>`, behaves as if each name placed in the standard library
73
+ namespace by the corresponding `<cname>` header is placed within the
74
+ global namespace scope, except for the functions described in
75
+ [[sf.cmath]], the declaration of `std::byte` [[cstddef.syn]], and the
76
+ functions and function templates described in [[support.types.byteops]].
77
+ It is unspecified whether these names are first declared or defined
78
+ within namespace scope [[basic.scope.namespace]] of the namespace `std`
79
+ and are then injected into the global namespace scope by explicit
80
+ *using-declaration*s [[namespace.udecl]].
81
 
82
  [*Example 1*: The header `<cstdlib>` assuredly provides its
83
  declarations and definitions within the namespace `std`. It may also
84
  provide these names within the global namespace. The header `<stdlib.h>`
85
  assuredly provides the same declarations and definitions within the