From c1e19796056dae6cb1eca53e06cb68aa9d23176e Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Mon, 1 Jun 2026 08:25:35 -0700 Subject: [PATCH] Use std::make_unique_for_overwrite to implement absl::make_unique_for_overwrite when it is available PiperOrigin-RevId: 924723063 Change-Id: Id3981612b1880c2bee505ca49ae079dc713ac746 --- absl/memory/memory.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/absl/memory/memory.h b/absl/memory/memory.h index 7be49838..88320e5f 100644 --- a/absl/memory/memory.h +++ b/absl/memory/memory.h @@ -96,6 +96,11 @@ std::unique_ptr WrapUnique(T* ptr) { // should use `std::make_unique`. using std::make_unique; +#if defined(__cpp_lib_smart_ptr_for_overwrite) && \ + __cpp_lib_smart_ptr_for_overwrite >= 202002L +using std::make_unique_for_overwrite; +#else + namespace memory_internal { // Traits to select proper overload and return type for @@ -143,6 +148,8 @@ template typename memory_internal::MakeUniqueResult::invalid make_unique_for_overwrite(Args&&... /* args */) = delete; +#endif // __cpp_lib_smart_ptr_for_overwrite + // ----------------------------------------------------------------------------- // Function Template: RawPtr() // -----------------------------------------------------------------------------