From Jason Turner

[freestanding.item]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmph34ufqhu/{from.md → to.md} +55 -0
tmp/tmph34ufqhu/{from.md → to.md} RENAMED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Freestanding items <a id="freestanding.item">[[freestanding.item]]</a>
2
+
3
+ A *freestanding item* is a declaration, entity, *typedef-name*, or macro
4
+ that is required to be present in a freestanding implementation and a
5
+ hosted implementation.
6
+
7
+ Unless otherwise specified, the requirements on freestanding items for a
8
+ freestanding implementation are the same as the corresponding
9
+ requirements for a hosted implementation, except that not all of the
10
+ members of the namespaces are required to be present.
11
+
12
+ [*Note 1*: This implies that freestanding item enumerations have the
13
+ same enumerators on freestanding implementations and hosted
14
+ implementations. Furthermore, class types have the same members and
15
+ class templates have the same deduction guides on freestanding
16
+ implementations and hosted implementations. — *end note*]
17
+
18
+ A declaration in a header synopsis is a freestanding item if
19
+
20
+ - it is followed by a comment that includes *freestanding*, or
21
+ - the header synopsis begins with a comment that includes *all
22
+ freestanding*.
23
+
24
+ An entity or *typedef-name* is a freestanding item if it is:
25
+
26
+ - introduced by a declaration that is a freestanding item,
27
+ - an enclosing namespace of a freestanding item,
28
+ - a friend of a freestanding item,
29
+ - denoted by a *typedef-name* that is a freestanding item, or
30
+ - denoted by an alias template that is a freestanding item.
31
+
32
+ A macro is a freestanding item if it is defined in a header synopsis and
33
+
34
+ - the definition is followed by a comment that includes *freestanding*,
35
+ or
36
+ - the header synopsis begins with a comment that includes *all
37
+ freestanding*.
38
+
39
+ [*Example 1*:
40
+
41
+ ``` cpp
42
+ #define NULL see below // freestanding
43
+ ```
44
+
45
+ — *end example*]
46
+
47
+ [*Example 2*:
48
+
49
+ ``` cpp
50
+ // all freestanding
51
+ namespace std {
52
+ ```
53
+
54
+ — *end example*]
55
+