From Jason Turner

[std.modules]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpcigzpbqi/{from.md → to.md} +41 -0
tmp/tmpcigzpbqi/{from.md → to.md} RENAMED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Modules <a id="std.modules">[[std.modules]]</a>
2
+
3
+ The C++ standard library provides the following *C++ library modules*.
4
+
5
+ The named module `std` exports declarations in namespace `std` that are
6
+ provided by the importable C++ library headers ([[headers.cpp]] or the
7
+ subset provided by a freestanding implementation) and the C++ headers
8
+ for C library facilities ([[headers.cpp.c]]). It additionally exports
9
+ declarations in the global namespace for the storage allocation and
10
+ deallocation functions that are provided by `<new>`.
11
+
12
+ The named module `std.compat` exports the same declarations as the named
13
+ module `std`, and additionally exports declarations in the global
14
+ namespace corresponding to the declarations in namespace `std` that are
15
+ provided by the C++ headers for C library facilities (
16
+ [[headers.cpp.c]]), except the explicitly excluded declarations
17
+ described in [[support.c.headers.other]].
18
+
19
+ It is unspecified to which module a declaration in the standard library
20
+ is attached.
21
+
22
+ [*Note 1*: Implementations are required to ensure that mixing
23
+ `#include` and `import` does not result in conflicting attachments
24
+ [[basic.link]]. — *end note*]
25
+
26
+ *Recommended practice:* Implementations should ensure such attachments
27
+ do not preclude further evolution or decomposition of the standard
28
+ library modules.
29
+
30
+ A declaration in the standard library denotes the same entity regardless
31
+ of whether it was made reachable through including a header, importing a
32
+ header unit, or importing a C++ library module.
33
+
34
+ *Recommended practice:* Implementations should avoid exporting any other
35
+ declarations from the C++ library modules.
36
+
37
+ [*Note 2*: Like all named modules, the C++ library modules do not make
38
+ macros visible [[module.import]], such as `assert` [[cassert.syn]],
39
+ `errno` [[cerrno.syn]], `offsetof` [[cstddef.syn]], and `va_arg`
40
+ [[cstdarg.syn]]. — *end note*]
41
+