void* allocate( std::size_t bytes,
std::size_t alignment = alignof(std::max_align_t) );
| (since C++17) (until C++20) | |
[[nodiscard]] void* allocate( std::size_t bytes,
std::size_t alignment = alignof(std::max_align_t) );
| (since C++20) |
Allocates storage with a size of at least bytes bytes, aligned to the specified alignment.
Equivalent to return do_allocate(bytes, alignment);.
Throws an exception if storage of the requested size and alignment cannot be obtained.
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2843 | ??? | over-alignment was allowed to be unsupported | alignment must be honoured |
|
[virtual] | allocates memory (virtual private member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/memory_resource/allocate