[libc++] [P0619] Hide not1 and not2 under _LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS.
This also provides some of the scaffolding needed by D102992 and D101729, and mops up after D101730 etc.
Differential Revision: https://reviews.llvm.org/D103055
NOKEYCHECK=True
GitOrigin-RevId: d42d9e10b606287f827dcc2d135ff8c932aa3d72
diff --git a/docs/Cxx2aStatus.rst b/docs/Cxx2aStatus.rst
index ad6713e..8346760 100644
--- a/docs/Cxx2aStatus.rst
+++ b/docs/Cxx2aStatus.rst
@@ -43,7 +43,7 @@
.. [#note-P0600] P0600: The missing bits in P0600 are in |sect|\ [mem.res.class], |sect|\ [mem.poly.allocator.class], and |sect|\ [container.node.overview].
.. [#note-P0966] P0966: It was previously erroneously marked as complete in version 8.0. See `bug 45368 <https://llvm.org/PR45368>`__.
- .. [#note-P0619] P0619: Only ``std::allocator`` part is implemented.
+ .. [#note-P0619] P0619: Only sections D.9 and D.10 are implemented. Section D.8 is partly implemented. Sections D.4, D.7, D.11, D.12, and D.14 remain undone.
.. _issues-status-cxx2a:
@@ -56,4 +56,4 @@
:header-rows: 1
:widths: auto
-Last Updated: 24-Nov-2020
+Last Updated: 24-May-2021
diff --git a/docs/UsingLibcxx.rst b/docs/UsingLibcxx.rst
index f146abd..082eca2 100644
--- a/docs/UsingLibcxx.rst
+++ b/docs/UsingLibcxx.rst
@@ -220,12 +220,23 @@
This macro is used to re-enable all the features removed in C++17. The effect
is equivalent to manually defining each macro listed below.
-**_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS**:
- This macro is used to re-enable the `set_unexpected`, `get_unexpected`, and
- `unexpected` functions, which were removed in C++17.
-
**_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR**:
- This macro is used to re-enable `std::auto_ptr` in C++17.
+ This macro is used to re-enable `auto_ptr`.
+
+**_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS**:
+ This macro is used to re-enable the `binder1st`, `binder2nd`,
+ `pointer_to_unary_function`, `pointer_to_binary_function`, `mem_fun_t`,
+ `mem_fun1_t`, `mem_fun_ref_t`, `mem_fun1_ref_t`, `const_mem_fun_t`,
+ `const_mem_fun1_t`, `const_mem_fun_ref_t`, and `const_mem_fun1_ref_t`
+ class templates, and the `bind1st`, `bind2nd`, `mem_fun`, `mem_fun_ref`,
+ and `ptr_fun` functions.
+
+**_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE**:
+ This macro is used to re-enable the `random_shuffle` algorithm.
+
+**_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS**:
+ This macro is used to re-enable `set_unexpected`, `get_unexpected`, and
+ `unexpected`.
C++20 Specific Configuration Macros:
------------------------------------
@@ -234,6 +245,24 @@
``[[nodiscard]]`` in dialects after C++17. See :ref:`Extended Applications of [[nodiscard]] <nodiscard extension>`
for more information.
+**_LIBCPP_ENABLE_CXX20_REMOVED_FEATURES**:
+ This macro is used to re-enable all the features removed in C++20. The effect
+ is equivalent to manually defining each macro listed below.
+
+**_LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS**:
+ This macro is used to re-enable redundant members of `allocator<T>`,
+ including `pointer`, `reference`, `rebind`, `address`, `max_size`,
+ `construct`, `destroy`, and the two-argument overload of `allocate`.
+ It also re-enables the library-provided explicit specializations
+ of `allocator<void>` and `allocator<const void>`.
+
+**_LIBCPP_ENABLE_CXX20_REMOVED_NEGATORS**:
+ This macro is used to re-enable `not1`, `not2`, `unary_negate`,
+ and `binary_negate`.
+
+**_LIBCPP_ENABLE_CXX20_REMOVED_RAW_STORAGE_ITERATOR**:
+ This macro is used to re-enable `raw_storage_iterator`.
+
Libc++ Extensions
=================