https://gcc.gnu.org/g:e4a0157c2397c9b582cff71d114240a6b083a3dc

commit r15-6060-ge4a0157c2397c9b582cff71d114240a6b083a3dc
Author: Giuseppe D'Angelo <giuseppe.dang...@kdab.com>
Date:   Mon Dec 9 02:11:19 2024 +0100

    libstdc++: port bitwise relocatable away from is_trivial
    
    In preparation for the deprecation of is_trivial (P3247R2).
    "bitwise relocation" (or "trivial relocation" à la P1144/P2786)
    doesn't need the full-fledged notion of triviality, just checking for a
    trivial move constructor and a trivial destructor is sufficient.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_uninitialized.h: Amended the
            __is_bitwise_relocatable type trait.
    
    Signed-off-by: Giuseppe D'Angelo <giuseppe.dang...@kdab.com>

Diff:
---
 libstdc++-v3/include/bits/stl_uninitialized.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h 
b/libstdc++-v3/include/bits/stl_uninitialized.h
index 2190261134e0..916288352d70 100644
--- a/libstdc++-v3/include/bits/stl_uninitialized.h
+++ b/libstdc++-v3/include/bits/stl_uninitialized.h
@@ -1248,7 +1248,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // Also known as is_trivially_relocatable.
   template<typename _Tp, typename = void>
     struct __is_bitwise_relocatable
-    : is_trivial<_Tp> { };
+    : __and_<is_trivially_move_constructible<_Tp>, 
is_trivially_destructible<_Tp>> { };
 
   template <typename _InputIterator, typename _ForwardIterator,
            typename _Allocator>

Reply via email to