[libcxx-commits] [libcxx] [libc++] Remove experimental pmr headers now shipped in mainline (PR #73172)

via libcxx-commits libcxx-commits at lists.llvm.org
Wed Nov 22 13:33:43 PST 2023


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Louis Dionne (ldionne)

<details>
<summary>Changes</summary>

Several experimental headers around std::pmr have been slated for removal for a while now. This patch actually performs the removal and cleanups from the code base.

---

Patch is 226.73 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/73172.diff


86 Files Affected:

- (modified) libcxx/docs/DesignDocs/ExperimentalFeatures.rst (+6-6) 
- (modified) libcxx/docs/ReleaseNotes/18.rst (+6-6) 
- (modified) libcxx/include/CMakeLists.txt (-11) 
- (modified) libcxx/include/__std_clang_module (-13) 
- (modified) libcxx/include/experimental/__config (-4) 
- (removed) libcxx/include/experimental/deque (-52) 
- (removed) libcxx/include/experimental/forward_list (-52) 
- (removed) libcxx/include/experimental/list (-52) 
- (removed) libcxx/include/experimental/map (-62) 
- (removed) libcxx/include/experimental/memory_resource (-444) 
- (removed) libcxx/include/experimental/regex (-69) 
- (removed) libcxx/include/experimental/set (-62) 
- (removed) libcxx/include/experimental/string (-73) 
- (removed) libcxx/include/experimental/unordered_map (-78) 
- (removed) libcxx/include/experimental/unordered_set (-64) 
- (removed) libcxx/include/experimental/vector (-52) 
- (modified) libcxx/include/module.modulemap.in (-45) 
- (modified) libcxx/src/CMakeLists.txt (+1-1) 
- (added) libcxx/src/experimental/keep.cpp (+3) 
- (removed) libcxx/src/experimental/memory_resource.cpp (-149) 
- (removed) libcxx/src/experimental/memory_resource_init_helper.h (-2) 
- (removed) libcxx/test/libcxx/experimental/lit.local.cfg (-3) 
- (removed) libcxx/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/assert.deallocate.pass.cpp (-41) 
- (removed) libcxx/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp (-179) 
- (removed) libcxx/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/assert.deallocate.pass.cpp (-44) 
- (removed) libcxx/test/libcxx/experimental/memory/memory.resource.global/global_memory_resource_lifetime.pass.cpp (-65) 
- (removed) libcxx/test/libcxx/experimental/memory/memory.resource.global/new_delete_resource_lifetime.pass.cpp (-57) 
- (modified) libcxx/test/libcxx/transitive_includes/cxx03.csv (-43) 
- (modified) libcxx/test/libcxx/transitive_includes/cxx11.csv (-43) 
- (modified) libcxx/test/libcxx/transitive_includes/cxx14.csv (-43) 
- (modified) libcxx/test/libcxx/transitive_includes/cxx17.csv (-43) 
- (modified) libcxx/test/libcxx/transitive_includes/cxx20.csv (-43) 
- (modified) libcxx/test/libcxx/transitive_includes/cxx23.csv (-27) 
- (modified) libcxx/test/libcxx/transitive_includes/cxx26.csv (-27) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/assign.pass.cpp (-34) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/copy.pass.cpp (-53) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp (-56) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/memory_resource_convert.pass.cpp (-53) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/other_alloc.pass.cpp (-61) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp (-141) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp (-112) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp (-117) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp (-57) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp (-148) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp (-144) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp (-149) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp (-168) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair_evil.pass.cpp (-144) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp (-232) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp (-69) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/destroy.pass.cpp (-56) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/resource.pass.cpp (-61) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/select_on_container_copy_construction.pass.cpp (-57) 
- (removed) libcxx/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.overview/nothing_to_do.pass.cpp (-11) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_copy.pass.cpp (-61) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_move.pass.cpp (-52) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/default.pass.cpp (-48) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_allocate_and_deallocate.pass.cpp (-120) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_is_equal.pass.cpp (-91) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.overview/overview.pass.cpp (-47) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_deque_synop.pass.cpp (-40) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_forward_list_synop.pass.cpp (-40) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_list_synop.pass.cpp (-40) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_map_synop.pass.cpp (-72) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_regex_synop.pass.cpp (-63) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_set_synop.pass.cpp (-70) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp (-80) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_unordered_map_synop.pass.cpp (-90) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_unordered_set_synop.pass.cpp (-88) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.aliases/header_vector_synop.pass.cpp (-40) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp (-81) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp (-106) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp (-120) 
- (removed) libcxx/test/std/experimental/memory/memory.resource.synop/nothing_to_do.pass.cpp (-13) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/construct.verify.cpp (-28) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.eq/equal.pass.cpp (-82) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.eq/not_equal.pass.cpp (-83) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.overview/nothing_to_do.pass.cpp (-11) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.priv/private_members.verify.cpp (-30) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp (-95) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.public/deallocate.pass.cpp (-81) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.public/dtor.pass.cpp (-67) 
- (removed) libcxx/test/std/experimental/memory/memory.resource/memory.resource.public/is_equal.pass.cpp (-101) 
- (removed) libcxx/test/support/test_memory_resource.h (-170) 
- (modified) libcxx/test/support/uses_alloc_types.h (+1-11) 
- (modified) libcxx/utils/libcxx/header_information.py (-12) 


``````````diff
diff --git a/libcxx/docs/DesignDocs/ExperimentalFeatures.rst b/libcxx/docs/DesignDocs/ExperimentalFeatures.rst
index 4cd6bf3a7fcd50d..dc2ae6a25aa5d01 100644
--- a/libcxx/docs/DesignDocs/ExperimentalFeatures.rst
+++ b/libcxx/docs/DesignDocs/ExperimentalFeatures.rst
@@ -106,19 +106,19 @@ Most (but not all) of the features of the LFTS were accepted into C++17.
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
 | 8.2.2   | ``weak_ptr`` enhancements                             | Not yet            | Never added                              |                         |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
-| 8.5     | ``memory_resource``                                   | Not yet            |                                          |                         |
+| 8.5     | ``memory_resource``                                   | 16.0               | 18.0                                     | Removed                 |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
-| 8.6     | ``polymorphic_allocator``                             | Not yet            |                                          |                         |
+| 8.6     | ``polymorphic_allocator``                             | 16.0               | 18.0                                     | Removed                 |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
 | 8.7     | ``resource_adaptor``                                  |                    | n/a                                      | Not part of C++17       |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
-| 8.8     | Access to program-wide ``memory_resource`` objects    | Not yet            |                                          |                         |
+| 8.8     | Access to program-wide ``memory_resource`` objects    | 16.0               | 18.0                                     | Removed                 |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
-| 8.9     | Pool resource classes                                 | Not yet            |                                          |                         |
+| 8.9     | Pool resource classes                                 | 16.0               | 18.0                                     | Removed                 |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
-| 8.10    | ``monotonic_buffer_resource``                         | Not yet            |                                          |                         |
+| 8.10    | ``monotonic_buffer_resource``                         | 16.0               | 18.0                                     | Removed                 |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
-| 8.11    | Alias templates using polymorphic memory resources    | Not yet            |                                          |                         |
+| 8.11    | Alias templates using polymorphic memory resources    | 16.0               | 18.0                                     | Removed                 |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
 | 8.12    | Non-owning pointers                                   |                    | n/a                                      | Not part of C++17       |
 +---------+-------------------------------------------------------+--------------------+------------------------------------------+-------------------------+
diff --git a/libcxx/docs/ReleaseNotes/18.rst b/libcxx/docs/ReleaseNotes/18.rst
index 1a5b959eac6ce66..5e5a27cc0e1f6cf 100644
--- a/libcxx/docs/ReleaseNotes/18.rst
+++ b/libcxx/docs/ReleaseNotes/18.rst
@@ -87,6 +87,12 @@ Deprecations and Removals
   macro is provided to restore the previous behavior, and it will be supported in the LLVM 18 release only.
   In LLVM 19 and beyond, ``_LIBCPP_ENABLE_NARROWING_CONVERSIONS_IN_VARIANT`` will not be honored anymore.
 
+- The headers ``<experimental/deque>``, ``<experimental/forward_list>``, ``<experimental/list>``,
+  ``<experimental/map>``, ``<experimental/memory_resource>``, ``<experimental/regex>``, ``<experimental/set>``,
+  ``<experimental/string>``, ``<experimental/unordered_map>``, ``<experimental/unordered_set>``,
+  and ``<experimental/vector>`` have been removed in LLVM 18, as all their contents will have been
+  implemented in namespace ``std`` for at least two releases.
+
 Upcoming Deprecations and Removals
 ----------------------------------
 
@@ -97,12 +103,6 @@ LLVM 18
   Please see the updated documentation about the hardening modes in libc++ and in particular the
   ``_LIBCPP_VERBOSE_ABORT`` macro for details.
 
-- The headers ``<experimental/deque>``, ``<experimental/forward_list>``, ``<experimental/list>``,
-  ``<experimental/map>``, ``<experimental/memory_resource>``, ``<experimental/regex>``, ``<experimental/set>``,
-  ``<experimental/string>``, ``<experimental/unordered_map>``, ``<experimental/unordered_set>``,
-  and ``<experimental/vector>`` will be removed in LLVM 18, as all their contents will have been implemented in
-  namespace ``std`` for at least two releases.
-
 LLVM 19
 ~~~~~~~
 
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index 889d7fedbf2965f..0bc58d15f1f0910 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -920,23 +920,12 @@ set(files
   experimental/__simd/traits.h
   experimental/__simd/utility.h
   experimental/__simd/vec_ext.h
-  experimental/deque
-  experimental/forward_list
   experimental/iterator
-  experimental/list
-  experimental/map
   experimental/memory
-  experimental/memory_resource
   experimental/propagate_const
-  experimental/regex
-  experimental/set
   experimental/simd
-  experimental/string
   experimental/type_traits
-  experimental/unordered_map
-  experimental/unordered_set
   experimental/utility
-  experimental/vector
   ext/__hash
   ext/hash_map
   ext/hash_set
diff --git a/libcxx/include/__std_clang_module b/libcxx/include/__std_clang_module
index 10ac3ccb8f329f4..18d6ce6b46c1f6e 100644
--- a/libcxx/include/__std_clang_module
+++ b/libcxx/include/__std_clang_module
@@ -86,25 +86,12 @@
 #include <exception>
 #include <execution>
 #include <expected>
-#include <experimental/deque>
-#include <experimental/forward_list>
 #include <experimental/iterator>
-#include <experimental/list>
-#include <experimental/map>
 #include <experimental/memory>
-#include <experimental/memory_resource>
 #include <experimental/propagate_const>
-#if !defined(_LIBCPP_HAS_NO_LOCALIZATION)
-#  include <experimental/regex>
-#endif
-#include <experimental/set>
 #include <experimental/simd>
-#include <experimental/string>
 #include <experimental/type_traits>
-#include <experimental/unordered_map>
-#include <experimental/unordered_set>
 #include <experimental/utility>
-#include <experimental/vector>
 #include <fenv.h>
 #include <filesystem>
 #include <float.h>
diff --git a/libcxx/include/experimental/__config b/libcxx/include/experimental/__config
index 65227c8b4052049..c86fd36dc558ea7 100644
--- a/libcxx/include/experimental/__config
+++ b/libcxx/include/experimental/__config
@@ -28,10 +28,6 @@
 #define _LIBCPP_END_NAMESPACE_LFTS_V2  } } }
 #define _VSTD_LFTS_V2 _VSTD_EXPERIMENTAL::fundamentals_v2
 
-#define _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR _LIBCPP_BEGIN_NAMESPACE_LFTS namespace pmr {
-#define _LIBCPP_END_NAMESPACE_LFTS_PMR _LIBCPP_END_NAMESPACE_LFTS }
-#define _VSTD_LFTS_PMR _VSTD_LFTS::pmr
-
 // TODO: support more targets
 #if defined(__AVX__)
 #define _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES 32
diff --git a/libcxx/include/experimental/deque b/libcxx/include/experimental/deque
deleted file mode 100644
index 46962afbb795eb4..000000000000000
--- a/libcxx/include/experimental/deque
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_DEQUE
-#define _LIBCPP_EXPERIMENTAL_DEQUE
-
-/*
-    experimental/deque synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
-  template <class T>
-  using deque = std::deque<T,polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <__assert> // all public C++ headers provide the assertion handler
-#include <deque>
-#include <experimental/__config>
-#include <experimental/memory_resource>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#  pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-#ifndef _LIBCPP_CXX03_LANG
-
-template <class _ValueT>
-using deque = _VSTD::deque<_ValueT, polymorphic_allocator<_ValueT>>;
-
-#endif // _LIBCPP_CXX03_LANG
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_DEQUE */
diff --git a/libcxx/include/experimental/forward_list b/libcxx/include/experimental/forward_list
deleted file mode 100644
index 5d2686deb27681f..000000000000000
--- a/libcxx/include/experimental/forward_list
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_FORWARD_LIST
-#define _LIBCPP_EXPERIMENTAL_FORWARD_LIST
-
-/*
-    experimental/forward_list synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
-  template <class T>
-  using forward_list = std::forward_list<T,polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <__assert> // all public C++ headers provide the assertion handler
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <forward_list>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#  pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-#ifndef _LIBCPP_CXX03_LANG
-
-template <class _ValueT>
-using forward_list = _VSTD::forward_list<_ValueT, polymorphic_allocator<_ValueT>>;
-
-#endif // _LIBCPP_CXX03_LANG
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_FORWARD_LIST */
diff --git a/libcxx/include/experimental/list b/libcxx/include/experimental/list
deleted file mode 100644
index 06abe8702241e35..000000000000000
--- a/libcxx/include/experimental/list
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_LIST
-#define _LIBCPP_EXPERIMENTAL_LIST
-
-/*
-    experimental/list synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
-  template <class T>
-  using list = std::list<T,polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <__assert> // all public C++ headers provide the assertion handler
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <list>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#  pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-#ifndef _LIBCPP_CXX03_LANG
-
-template <class _ValueT>
-using list = _VSTD::list<_ValueT, polymorphic_allocator<_ValueT>>;
-
-#endif // _LIBCPP_CXX03_LANG
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_LIST */
diff --git a/libcxx/include/experimental/map b/libcxx/include/experimental/map
deleted file mode 100644
index 8ec94e4a5bc86dd..000000000000000
--- a/libcxx/include/experimental/map
+++ /dev/null
@@ -1,62 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_MAP
-#define _LIBCPP_EXPERIMENTAL_MAP
-
-/*
-    experimental/map synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
-  template <class Key, class T, class Compare = less<Key>>
-  using map = std::map<Key, T, Compare,
-                       polymorphic_allocator<pair<const Key,T>>>;
-
-  template <class Key, class T, class Compare = less<Key>>
-  using multimap = std::multimap<Key, T, Compare,
-                                 polymorphic_allocator<pair<const Key,T>>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <__assert> // all public C++ headers provide the assertion handler
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <map>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#  pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-#ifndef _LIBCPP_CXX03_LANG
-
-template <class _Key, class _Value, class  _Compare = less<_Key>>
-using map = _VSTD::map<_Key, _Value, _Compare,
-                        polymorphic_allocator<pair<const _Key, _Value>>>;
-
-template <class _Key, class _Value, class  _Compare = less<_Key>>
-using multimap = _VSTD::multimap<_Key, _Value, _Compare,
-                        polymorphic_allocator<pair<const _Key, _Value>>>;
-
-#endif // _LIBCPP_CXX03_LANG
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_MAP */
diff --git a/libcxx/include/experimental/memory_resource b/libcxx/include/experimental/memory_resource
deleted file mode 100644
index 8ae8322ae1a63e9..000000000000000
--- a/libcxx/include/experimental/memory_resource
+++ /dev/null
@@ -1,444 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE
-#define _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE
-
-/**
-    experimental/memory_resource synopsis
-
-// C++1y
-
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
-  class memory_resource;
-
-  bool operator==(const memory_resource& a,
-                  const memory_resource& b) noexcept;
-  bool operator!=(const memory_resource& a,
-                  const memory_resource& b) noexcept;
-
-  template <class Tp> class polymorphic_allocator;
-
-  template <class T1, class T2>
-  bool operator==(const polymorphic_allocator<T1>& a,
-                  const polymorphic_allocator<T2>& b) noexcept;
-  template <class T1, class T2>
-  bool operator!=(const polymorphic_allocator<T1>& a,
-                  const polymorphic_allocator<T2>& b) noexcept;
-
-  // The name resource_adaptor_imp is for exposition only.
-  template <class Allocator> class resource_adaptor_imp;
-
-  template <class Allocator>
-    using resource_adaptor = resource_adaptor_imp<
-      allocator_traits<Allocator>::rebind_alloc<char>>;
-
-  // Global memory resources
-  memory_resource* new_delete_resource() noexcept;
-  memory_resource* null_memory_resource() noexcept;
-
-  // The default memory resource
-  memory_resource* set_default_resource(memory_resource* r) noexcept;
-  memory_resource* get_default_resource() noexcept;
-
-  // Standard memory resources
-  struct pool_options;
-  class synchronized_pool_resource;
-  class unsynchronized_pool_resource;
-  class monotonic_buffer_resource;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <__assert> // all public C++ headers provide the assertion handler
-#include <__memory/allocator_traits.h>
-#include <__type_traits/aligned_storage.h>
-#include <__utility/move.h>
-#include <cstddef>
-#include <experimental/__config>
-#include <experimental/__memory>
-#include <limits>
-#include <new>
-#include <stdexcept>
-#include <tuple>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#  pragma GCC system_header
-#endif
-
-_LIBCPP_PUSH_MACROS
-#include <__undef_macros>
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-#define _LIBCPP_DEPCREATED_MEMORY_RESOURCE(name)                                                                       \
-  _LIBCPP_DEPRECATED_("'std::experimental::pmr::" name                                                                 \
-                      "' is deprecated and will be removed in LLVM 18. Use 'std::pmr::" name "' instead.")
-
-#ifndef _LIBCPP_CXX03_LANG
-
-// Round __s up to next multiple of __a.
-inline _LIBCPP_INLINE_VISIBILITY
-size_t __aligned_allocation_size(size_t __s, size_t __a) _NOEXCEPT
-{
-    _LIBCPP_ASSERT_UNCATEGORIZED(__s + __a > __s, "aligned allocation size overflows");
-    return (__s + __a - 1) & ~(__a - 1);
-}
-
-// 8.5, memory.resource
-class _LIBCPP_DEPCREATED_MEMORY_RESOURCE("memory_resource") _LIBCPP_EXPORTED_FROM_ABI memory_resource
-{
-    static const size_t __max_align = _LIBCPP_ALIGNOF(max_align_t);
-
-// 8.5.2, memory.resource.public
-public:
-    _LIBCPP_HIDE_FROM_ABI_VIRTUAL virtual ~memory_resource() = default;
-
-    _LIBCPP_INLINE_VISIBILITY
-    void* allocate(size_t __bytes, size_t __align = __max_align)
-        { return do_allocate(__bytes, __align); }
-
-    _LIBCPP_INLINE_VISIBILITY
-    void deallocate(void * __p, size_t __bytes, size_t __align = __max_align)
-        { do_deallocate(__p, __bytes, __align); }
-
-    _LIBCPP_INLINE_VISIBILITY
-    bool is_equal(memory_resource const & __other) const _NOEXCEPT
-        { return do_is_equal(__other); }
-
-// 8.5.3, memory.resource.priv
-private:
-    virtual void* do_allocate(size_t, size_t) = 0;
-    virtual void do_deallocate(void*, size_t, size_t) = 0;
-    virtual bool do_is_equal(memory_resource const &) const _NOEXCEPT = 0;
-};
-
-// 8.5.4, memory.resource.eq
-_LIBCPP_DEPCREATED_MEMORY_RESOURCE("operator==(memory_resource, memory_resource)") inline _LIBCPP_INLINE_VISIBILITY
-bool operator==(memory_resource const & __lhs,
-                memory_resource const & __rhs) _NOEXCEPT
-{
-    return &__lhs == &__rhs || __lhs.is_equal(__rhs);
-}
-
-_LIBCPP_DEPCREATED_MEMORY_RESOURCE("operator!=(memory_resource, memory_resource)") inline _LIBCPP_INLINE_VISIBILITY
-bool operator!=(memory_resource const & __lhs,
-                memory_resource const & __rhs) _NOEXCEPT
-{
-    return !(__lhs == __rhs);
-}
-
-_LIBCPP_DEPCREATED_MEMORY_RESOURCE("new_delete_resource()") _L...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/73172


More information about the libcxx-commits mailing list