]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Remove non-concepts fallback for std::make_shared_for_overwrite
authorJonathan Wakely <jwakely@redhat.com>
Tue, 5 May 2026 13:03:04 +0000 (14:03 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 6 May 2026 12:18:14 +0000 (13:18 +0100)
Clang 10 added support for concepts, so we no longer need to support
C++20 compilers that don't define __cpp_concepts.

libstdc++-v3/ChangeLog:

* include/bits/shared_ptr.h (_UnboundedArray, _BoundedArray)
(_NotUnboundedArray): Remove fallback definition for C++20
compilers that don't define __cpp_concepts.
* include/bits/shared_ptr_base.h (_Sp_counted_ptr_inplace):
Remove fallback declaration of _Sp_overwrite_tag partial
specialization.

Reviewed-by: Tomasz KamiƄski <tkaminsk@redhat.com>
libstdc++-v3/include/bits/shared_ptr.h
libstdc++-v3/include/bits/shared_ptr_base.h

index fd00384df223ffb541f874981d2ae271d6a39aff..ada32d3d3cb91cdc0b099587da9829c1c9feb321 100644 (file)
@@ -114,38 +114,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if __glibcxx_shared_ptr_arrays >= 201707L
   // Constraint for overloads taking array types with unknown bound, U[].
-#if __cpp_concepts
   template<typename _Tp>
     requires is_array_v<_Tp> && (extent_v<_Tp> == 0)
     using _UnboundedArray = _Tp;
-#else
-  template<typename _Tp>
-    using _UnboundedArray
-      = __enable_if_t<__is_array_unknown_bounds<_Tp>::value, _Tp>;
-#endif
 
   // Constraint for overloads taking array types with known bound, U[N].
-#if __cpp_concepts
   template<typename _Tp>
     requires (extent_v<_Tp> != 0)
     using _BoundedArray = _Tp;
-#else
-  template<typename _Tp>
-    using _BoundedArray
-      = __enable_if_t<__is_array_known_bounds<_Tp>::value, _Tp>;
-#endif
 
 #if __glibcxx_smart_ptr_for_overwrite
   // Constraint for overloads taking either non-array or bounded array, U[N].
-#if __cpp_concepts
   template<typename _Tp>
     requires (!is_array_v<_Tp>) || (extent_v<_Tp> != 0)
     using _NotUnboundedArray = _Tp;
-#else
-  template<typename _Tp>
-    using _NotUnboundedArray
-      = __enable_if_t<!__is_array_unknown_bounds<_Tp>::value, _Tp>;
-#endif
 #endif // smart_ptr_for_overwrite
 #endif // shared_ptr_arrays
 
index b92e3a4c90e41c349cb6c74f05081866bda61390..cfaee6df37b1bd576d8c11071353330ecf76927a 100644 (file)
@@ -727,14 +727,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // Partial specialization used for make_shared_for_overwrite<non-array>().
   // This partial specialization is used when the allocator's value type
   // is the special _Sp_overwrite_tag type.
-#if __cpp_concepts
   template<typename _Tp, typename _Alloc, _Lock_policy _Lp>
     requires is_same_v<typename _Alloc::value_type, _Sp_overwrite_tag>
     class _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> final
-#else
-  template<typename _Tp, template<typename> class _Alloc, _Lock_policy _Lp>
-    class _Sp_counted_ptr_inplace<_Tp, _Alloc<_Sp_overwrite_tag>, _Lp> final
-#endif
     : public _Sp_counted_base<_Lp>
     {
       [[no_unique_address]] _Alloc _M_alloc;