|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Public member functions | ||||
memory_resource::allocate | ||||
| Private member functions | ||||
| Non-member functions | ||||
(until C++20) |
void* allocate(std::size_t bytes, std::size_t alignment= alignof(std::max_align_t)); | (since C++17) | |
Allocates storage with a size of at leastbytes bytes, aligned to the specifiedalignment.
Equivalent toreturn 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 | C++17 | over-alignment was allowed to be unsupported | alignment must be honoured |
[virtual] | allocates memory (virtual private member function)[edit] |