Tested powerpc64le-linux, pushed to trunk.
We don't need a preprocessor condition to decide whether to use
placement new or std::construct_at, because std::_Construct already does
that.
libstdc++-v3/ChangeLog:
* include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
Use std::_Construct for construct.
---
libstdc++-v3/include/bits/alloc_traits.h | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/libstdc++-v3/include/bits/alloc_traits.h
b/libstdc++-v3/include/bits/alloc_traits.h
index f51049f4a51..fa93feb7198 100644
--- a/libstdc++-v3/include/bits/alloc_traits.h
+++ b/libstdc++-v3/include/bits/alloc_traits.h
@@ -632,13 +632,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static _GLIBCXX20_CONSTEXPR void
construct(allocator_type&, _Up* __p, _Args&&... __args)
noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
- {
-#if __cplusplus <= 201703L
- ::new((void *)__p) _Up(std::forward<_Args>(__args)...);
-#else
- std::construct_at(__p, std::forward<_Args>(__args)...);
-#endif
- }
+ { std::_Construct(__p, std::forward<_Args>(__args)...); }
/**
* @brief Destroy an object of type `_Up`
--
2.31.1