From Jason Turner

[reserved.names]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpqf11bs18/{from.md → to.md} +24 -11
tmp/tmpqf11bs18/{from.md → to.md} RENAMED
@@ -1,15 +1,17 @@
1
  #### Reserved names <a id="reserved.names">[[reserved.names]]</a>
2
 
 
 
3
  The C++ standard library reserves the following kinds of names:
4
 
5
  - macros
6
  - global names
7
  - names with external linkage
8
 
9
  If a program declares or defines a name in a context where it is
10
- reserved, other than as explicitly allowed by this Clause, its behavior
11
  is undefined.
12
 
13
  ##### Zombie names <a id="zombie.names">[[zombie.names]]</a>
14
 
15
  In namespace `std`, the following names are reserved for previous
@@ -25,10 +27,13 @@ standardization:
25
  - `binder2nd`,
26
  - `const_mem_fun1_ref_t`,
27
  - `const_mem_fun1_t`,
28
  - `const_mem_fun_ref_t`,
29
  - `const_mem_fun_t`,
 
 
 
30
  - `get_temporary_buffer`,
31
  - `get_unexpected`,
32
  - `gets`,
33
  - `is_literal_type`,
34
  - `is_literal_type_v`,
@@ -38,10 +43,11 @@ standardization:
38
  - `mem_fun_ref`,
39
  - `mem_fun_t`,
40
  - `mem_fun`,
41
  - `not1`,
42
  - `not2`,
 
43
  - `pointer_to_binary_function`,
44
  - `pointer_to_unary_function`,
45
  - `ptr_fun`,
46
  - `random_shuffle`,
47
  - `raw_storage_iterator`,
@@ -50,23 +56,26 @@ standardization:
50
  - `return_temporary_buffer`,
51
  - `set_unexpected`,
52
  - `unary_function`,
53
  - `unary_negate`,
54
  - `uncaught_exception`,
55
- - `unexpected`, and
 
56
  - `unexpected_handler`.
57
 
58
- The following names are reserved as member types for previous
59
  standardization, and may not be used as a name for object-like macros in
60
  portable code:
61
 
62
  - `argument_type`,
63
  - `first_argument_type`,
64
  - `io_state`,
65
  - `open_mode`,
66
- - `second_argument_type`, and
67
- - `seek_dir`.
 
 
68
 
69
  The name `stossc` is reserved as a member function for previous
70
  standardization, and may not be used as a name for function-like macros
71
  in portable code.
72
 
@@ -86,32 +95,36 @@ defined as function-like macros  [[cpp.replace]].
86
 
87
  ##### External linkage <a id="extern.names">[[extern.names]]</a>
88
 
89
  Each name declared as an object with external linkage in a header is
90
  reserved to the implementation to designate that library object with
91
- external linkage, [^23] both in namespace `std` and in the global
92
- namespace.
 
93
 
94
  Each global function signature declared with external linkage in a
95
  header is reserved to the implementation to designate that function
96
- signature with external linkage.[^24]
97
 
98
  Each name from the C standard library declared with external linkage is
99
  reserved to the implementation for use as a name with `extern "C"`
100
  linkage, both in namespace `std` and in the global namespace.
101
 
102
  Each function signature from the C standard library declared with
103
  external linkage is reserved to the implementation for use as a function
104
- signature with both `extern "C"` and `extern "C++"` linkage,[^25] or as
105
- a name of namespace scope in the global namespace.
 
106
 
107
  ##### Types <a id="extern.types">[[extern.types]]</a>
108
 
109
  For each type `T` from the C standard library, the types `::T` and
110
  `std::T` are reserved to the implementation and, when defined, `::T`
111
  shall be identical to `std::T`.
112
 
113
  ##### User-defined literal suffixes <a id="usrlit.suffix">[[usrlit.suffix]]</a>
114
 
115
  Literal suffix identifiers [[over.literal]] that do not start with an
116
- underscore are reserved for future standardization.
 
 
117
 
 
1
  #### Reserved names <a id="reserved.names">[[reserved.names]]</a>
2
 
3
+ ##### General <a id="reserved.names.general">[[reserved.names.general]]</a>
4
+
5
  The C++ standard library reserves the following kinds of names:
6
 
7
  - macros
8
  - global names
9
  - names with external linkage
10
 
11
  If a program declares or defines a name in a context where it is
12
+ reserved, other than as explicitly allowed by [[library]], its behavior
13
  is undefined.
14
 
15
  ##### Zombie names <a id="zombie.names">[[zombie.names]]</a>
16
 
17
  In namespace `std`, the following names are reserved for previous
 
27
  - `binder2nd`,
28
  - `const_mem_fun1_ref_t`,
29
  - `const_mem_fun1_t`,
30
  - `const_mem_fun_ref_t`,
31
  - `const_mem_fun_t`,
32
+ - `declare_no_pointers`,
33
+ - `declare_reachable`,
34
+ - `get_pointer_safety`,
35
  - `get_temporary_buffer`,
36
  - `get_unexpected`,
37
  - `gets`,
38
  - `is_literal_type`,
39
  - `is_literal_type_v`,
 
43
  - `mem_fun_ref`,
44
  - `mem_fun_t`,
45
  - `mem_fun`,
46
  - `not1`,
47
  - `not2`,
48
+ - `pointer_safety`,
49
  - `pointer_to_binary_function`,
50
  - `pointer_to_unary_function`,
51
  - `ptr_fun`,
52
  - `random_shuffle`,
53
  - `raw_storage_iterator`,
 
56
  - `return_temporary_buffer`,
57
  - `set_unexpected`,
58
  - `unary_function`,
59
  - `unary_negate`,
60
  - `uncaught_exception`,
61
+ - `undeclare_no_pointers`,
62
+ - `undeclare_reachable`, and
63
  - `unexpected_handler`.
64
 
65
+ The following names are reserved as members for previous
66
  standardization, and may not be used as a name for object-like macros in
67
  portable code:
68
 
69
  - `argument_type`,
70
  - `first_argument_type`,
71
  - `io_state`,
72
  - `open_mode`,
73
+ - `preferred`,
74
+ - `second_argument_type`,
75
+ - `seek_dir`, and.
76
+ - `strict`.
77
 
78
  The name `stossc` is reserved as a member function for previous
79
  standardization, and may not be used as a name for function-like macros
80
  in portable code.
81
 
 
95
 
96
  ##### External linkage <a id="extern.names">[[extern.names]]</a>
97
 
98
  Each name declared as an object with external linkage in a header is
99
  reserved to the implementation to designate that library object with
100
+ external linkage, [^22]
101
+
102
+ both in namespace `std` and in the global namespace.
103
 
104
  Each global function signature declared with external linkage in a
105
  header is reserved to the implementation to designate that function
106
+ signature with external linkage.[^23]
107
 
108
  Each name from the C standard library declared with external linkage is
109
  reserved to the implementation for use as a name with `extern "C"`
110
  linkage, both in namespace `std` and in the global namespace.
111
 
112
  Each function signature from the C standard library declared with
113
  external linkage is reserved to the implementation for use as a function
114
+ signature with both `extern "C"` and `extern "C++"` linkage,[^24]
115
+
116
+ or as a name of namespace scope in the global namespace.
117
 
118
  ##### Types <a id="extern.types">[[extern.types]]</a>
119
 
120
  For each type `T` from the C standard library, the types `::T` and
121
  `std::T` are reserved to the implementation and, when defined, `::T`
122
  shall be identical to `std::T`.
123
 
124
  ##### User-defined literal suffixes <a id="usrlit.suffix">[[usrlit.suffix]]</a>
125
 
126
  Literal suffix identifiers [[over.literal]] that do not start with an
127
+ underscore are reserved for future standardization. Literal suffix
128
+ identifiers that contain a double underscore `__` are reserved for use
129
+ by C++ implementations.
130