On Mon, 9 Dec 2024 at 13:21, Jonathan Wakely <jwak...@redhat.com> wrote:
>
> On 09/12/24 13:22 +0100, Giuseppe D'Angelo wrote:
> >Hello,
> >
> >This aligns __is_bitwise_relocatable with its modern meaning, that is,
> >checking for trivial move construction and destruction.
>
> Looks good, thanks.
>
> >Thanks,
> >--
> >Giuseppe D'Angelo
>
> >From 0666e993066818ab0940c61d8d9539e883848b29 Mon Sep 17 00:00:00 2001
> >From: Giuseppe D'Angelo <giuseppe.dang...@kdab.com>
> >Date: Mon, 9 Dec 2024 02:11:19 +0100
> >Subject: [PATCH 3/6] libstdc++: port bitwise relocatable away from is_trivial
> >MIME-Version: 1.0
> >Content-Type: text/plain; charset=UTF-8
> >Content-Transfer-Encoding: 8bit
> >
> >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>
> >---
> > 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 2190261134e..916288352d7 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>> { };

We need this to depend on is_trivially_copyable too, so we can use memcpy.

I'm testing a fix now to fix bootstrap.


> >
> >   template <typename _InputIterator, typename _ForwardIterator,
> >           typename _Allocator>
> >--
> >2.34.1
> >
>
>
>

Reply via email to