tmp/tmpp5nz3jid/{from.md → to.md}
RENAMED
|
@@ -2,12 +2,12 @@
|
|
| 2 |
|
| 3 |
**Change:** Remove `uncaught_exception`. **Rationale:** The function did
|
| 4 |
not have a clear specification when multiple exceptions were active, and
|
| 5 |
has been superseded by `uncaught_exceptions`. **Effect on original
|
| 6 |
feature:** A valid C++17 program that calls `std::uncaught_exception`
|
| 7 |
-
may fail to compile. It
|
| 8 |
-
|
| 9 |
|
| 10 |
**Change:** Remove support for adaptable function API. **Rationale:**
|
| 11 |
The deprecated support relied on a limited convention that could not be
|
| 12 |
extended to support the general case or new language features. It has
|
| 13 |
been superseded by direct language support with `decltype`, and by the
|
|
@@ -26,14 +26,14 @@ C++17 program that directly makes use of the `pointer`, `const_pointer`,
|
|
| 26 |
`reference`, `const_reference`, `rebind`, `address`, `construct`,
|
| 27 |
`destroy`, or `max_size` members of `std::allocator`, or that directly
|
| 28 |
calls `allocate` with an additional hint argument, may fail to compile.
|
| 29 |
|
| 30 |
**Change:** Remove `raw_storage_iterator`. **Rationale:** The iterator
|
| 31 |
-
encouraged use of
|
| 32 |
-
|
| 33 |
-
to
|
| 34 |
-
|
| 35 |
|
| 36 |
**Change:** Remove temporary buffers API. **Rationale:** The temporary
|
| 37 |
buffer facility was intended to provide an efficient optimization for
|
| 38 |
small memory requests, but there is little evidence this was achieved in
|
| 39 |
practice, while requiring the user to provide their own exception-safe
|
|
@@ -43,19 +43,19 @@ original feature:** A valid C++17 program that calls
|
|
| 43 |
|
| 44 |
**Change:** Remove `shared_ptr::unique`. **Rationale:** The result of a
|
| 45 |
call to this member function is not reliable in the presence of multiple
|
| 46 |
threads and weak pointers. The member function `use_count` is similarly
|
| 47 |
unreliable, but has a clearer contract in such cases, and remains
|
| 48 |
-
available for well
|
| 49 |
original feature:** A valid C++17 program that calls `unique` on a
|
| 50 |
`shared_ptr` object may fail to compile.
|
| 51 |
|
| 52 |
**Change:** Remove deprecated type traits. **Rationale:** The traits had
|
| 53 |
unreliable or awkward interfaces. The `is_literal_type` trait provided
|
| 54 |
no way to detect which subset of constructors and member functions of a
|
| 55 |
type were declared `constexpr`. The `result_of` trait had a surprising
|
| 56 |
-
syntax that
|
| 57 |
-
|
| 58 |
-
|
| 59 |
`result_of` type traits, on the `is_literal_type_v` variable template,
|
| 60 |
or on the `result_of_t` alias template may fail to compile.
|
| 61 |
|
|
|
|
| 2 |
|
| 3 |
**Change:** Remove `uncaught_exception`. **Rationale:** The function did
|
| 4 |
not have a clear specification when multiple exceptions were active, and
|
| 5 |
has been superseded by `uncaught_exceptions`. **Effect on original
|
| 6 |
feature:** A valid C++17 program that calls `std::uncaught_exception`
|
| 7 |
+
may fail to compile. It can be revised to use `std::uncaught_exceptions`
|
| 8 |
+
instead, for clear and portable semantics.
|
| 9 |
|
| 10 |
**Change:** Remove support for adaptable function API. **Rationale:**
|
| 11 |
The deprecated support relied on a limited convention that could not be
|
| 12 |
extended to support the general case or new language features. It has
|
| 13 |
been superseded by direct language support with `decltype`, and by the
|
|
|
|
| 26 |
`reference`, `const_reference`, `rebind`, `address`, `construct`,
|
| 27 |
`destroy`, or `max_size` members of `std::allocator`, or that directly
|
| 28 |
calls `allocate` with an additional hint argument, may fail to compile.
|
| 29 |
|
| 30 |
**Change:** Remove `raw_storage_iterator`. **Rationale:** The iterator
|
| 31 |
+
encouraged use of potentially-throwing algorithms, but did not return
|
| 32 |
+
the number of elements successfully constructed, as would be necessary
|
| 33 |
+
to destroy them. **Effect on original feature:** A valid C++17 program
|
| 34 |
+
that uses this iterator class may fail to compile.
|
| 35 |
|
| 36 |
**Change:** Remove temporary buffers API. **Rationale:** The temporary
|
| 37 |
buffer facility was intended to provide an efficient optimization for
|
| 38 |
small memory requests, but there is little evidence this was achieved in
|
| 39 |
practice, while requiring the user to provide their own exception-safe
|
|
|
|
| 43 |
|
| 44 |
**Change:** Remove `shared_ptr::unique`. **Rationale:** The result of a
|
| 45 |
call to this member function is not reliable in the presence of multiple
|
| 46 |
threads and weak pointers. The member function `use_count` is similarly
|
| 47 |
unreliable, but has a clearer contract in such cases, and remains
|
| 48 |
+
available for well-defined use in single-threaded cases. **Effect on
|
| 49 |
original feature:** A valid C++17 program that calls `unique` on a
|
| 50 |
`shared_ptr` object may fail to compile.
|
| 51 |
|
| 52 |
**Change:** Remove deprecated type traits. **Rationale:** The traits had
|
| 53 |
unreliable or awkward interfaces. The `is_literal_type` trait provided
|
| 54 |
no way to detect which subset of constructors and member functions of a
|
| 55 |
type were declared `constexpr`. The `result_of` trait had a surprising
|
| 56 |
+
syntax that did not directly support function types. It has been
|
| 57 |
+
superseded by the `invoke_result` trait. **Effect on original feature:**
|
| 58 |
+
A valid C++17 program that relies on the `is_literal_type` or
|
| 59 |
`result_of` type traits, on the `is_literal_type_v` variable template,
|
| 60 |
or on the `result_of_t` alias template may fail to compile.
|
| 61 |
|