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.dangelo@kdab.com>
// 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>