Dynamic memory management
Uninitialized storage
Garbage collection support
C Library
Low level memory management
void* allocate_bytes( std::size_t nbytes,
                      std::size_t alignment = alignof(std::max_align_t) );
(since C++20)

Allocates nbytes bytes of storage at specified alignment alignment using the underlying memory resource. Equivalent to return resource()->allocate(nbytes, alignment);


nbytes - the number of bytes to allocate
alignment - the alignment to use

Return value

A pointer to the allocated storage.


This function was introduced for use with the fully-specialized allocator std::polymorphic_allocator<>, but it may be useful in any specialization.

The return type is void* (rather than, e.g., std::byte*) to support conversion to an arbitrary pointer type U* by static_cast<U*>.


May throw any exceptions thrown by the call to resource()->allocate.

See also

Allocates raw memory suitable for an object or an array
(public member function)
Allocates and constructs an object
(public member function)
Allocate memory
(public member function)
allocates uninitialized storage using the allocator
(public static member function of std::allocator_traits<Alloc>)
allocates memory
(public member function of std::pmr::memory_resource)