From Jason Turner

[depr.c.headers]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpvb8al4xy/{from.md → to.md} +21 -15
tmp/tmpvb8al4xy/{from.md → to.md} RENAMED
@@ -1,10 +1,9 @@
1
  ## C standard library headers <a id="depr.c.headers">[[depr.c.headers]]</a>
2
 
3
- For compatibility with the C standard library and the C Unicode TR, the
4
- C++standard library provides the 26 *C headers*, as shown in Table 
5
- [[tab:future.c.headers]].
6
 
7
  **Table: C headers** <a id="tab:future.c.headers">[tab:future.c.headers]</a>
8
 
9
  | | | | | |
10
  | ------------- | -------------- | -------------- | ------------ | ------------ |
@@ -14,20 +13,27 @@ C++standard library provides the 26 *C headers*, as shown in Table 
14
  | `<errno.h>` | `<locale.h>` | `<stdbool.h>` | `<tgmath.h>` | |
15
  | `<fenv.h>` | `<math.h>` | `<stddef.h>` | `<time.h>` | |
16
  | `<float.h>` | `<setjmp.h>` | `<stdint.h>` | `<uchar.h>` | |
17
 
18
 
19
- Every C header, each of which has a name of the form `name.h`, behaves
20
- as if each name placed in the standard library namespace by the
 
 
 
 
21
  corresponding `cname` header is placed within the global namespace
22
- scope. It is unspecified whether these names are first declared or
23
- defined within namespace scope ([[basic.scope.namespace]]) of the
24
- namespace `std` and are then injected into the global namespace scope by
25
- explicit *using-declaration*s ([[namespace.udecl]]).
 
 
 
26
 
27
- The header `<cstdlib>` assuredly provides its declarations and
28
- definitions within the namespace `std`. It may also provide these names
29
- within the global namespace. The header `<stdlib.h>` assuredly provides
30
- the same declarations and definitions within the global namespace, much
31
- as in the C Standard. It may also provide these names within the
32
- namespace `std`.
33
 
 
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
  | ------------- | -------------- | -------------- | ------------ | ------------ |
 
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
37
+ global namespace, much as in the C Standard. It may also provide these
38
+ names within the namespace `std`. — *end example*]
39