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
|
| 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 |
-
- `
|
|
|
|
| 56 |
- `unexpected_handler`.
|
| 57 |
|
| 58 |
-
The following names are reserved as
|
| 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 |
-
- `
|
| 67 |
-
- `
|
|
|
|
|
|
|
| 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, [^
|
| 92 |
-
|
|
|
|
| 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.[^
|
| 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,[^
|
| 105 |
-
|
|
|
|
| 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 |
|