[libcxx-commits] [libcxx] [libc++] Partially implement LWG3187 for `polymorphic_allocator` (PR #171090)

A. Jiang via libcxx-commits libcxx-commits at lists.llvm.org
Mon Dec 8 01:50:30 PST 2025


================
@@ -67,21 +73,25 @@ template <class _Type, class _Alloc, class... _Args>
 _LIBCPP_HIDE_FROM_ABI constexpr _Type __make_obj_using_allocator(const _Alloc& __alloc, _Args&&... __args);
 
 template <class _Pair>
-struct __uses_allocator_construction_args<_Pair, __enable_if_t<__is_cv_std_pair<_Pair>>> {
+struct __uses_allocator_construction_args<_Pair, true> {
   template <class _Alloc, class _Tuple1, class _Tuple2>
   static _LIBCPP_HIDE_FROM_ABI constexpr auto
   __apply(const _Alloc& __alloc, piecewise_construct_t, _Tuple1&& __x, _Tuple2&& __y) noexcept {
     return std::make_tuple(
+#  if _LIBCPP_STD_VER >= 20
         piecewise_construct,
+#  else
+        std::ref(piecewise_construct),
----------------
frederick-vs-ja wrote:

`std::ref(piecewise_construct)` caused linker error for "generic-modules-cxx17-lsv, llvm-premerge-libcxx-runners" build.
- https://github.com/llvm/llvm-project/actions/runs/20022073370/job/57414796205?pr=171090

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


More information about the libcxx-commits mailing list