Add overalignment support for new_delete_resource for newer (__cpp_aligned_new) and older standards, including some workaround for targets where __STDCPP_DEFAULT_NEW_ALIGNMENT__ value is not correctly aligned between GCC and the malloc implementation (Win32)

This commit is contained in:
Ion Gaztañaga
2025-12-26 10:59:37 +01:00
parent 52b34fb1da
commit ae9265dc7d
3 changed files with 206 additions and 20 deletions

View File

@@ -1451,8 +1451,9 @@ use [*Boost.Container]? There are several reasons for that:
* Implemented C++20's [funcref boost::container::uninitialized_construct_using_allocator uninitialized_construct_using_allocator]
and [funcref boost::container::make_obj_using_allocator make_obj_using_allocator].
* Added `[[nodiscard]]` to several allocator and PMR utilities.
* Implemented overaligned operator new/delete support for `new_allocator` and `pmr::new_delete_resource()`
when C++17's `cpp_aligned_new` is available.
* Implemented overaligned operator new/delete support for `new_allocator` and `pmr::new_delete_resource()`:
* Uses C++17's `cpp_aligned_new` if available.
* Uses alternative aligned allocation functions for Win32/Unix otherwise.
* Fixed bugs/issues:
* [@https://github.com/boostorg/container/issues/323 GitHub #323: ['"flat_tree::try_emplace UB"]].