cpp/memory/allocator/allocate at least

Allocates bytes of uninitialized storage, where  is an unspecified integer value not less than, by calling  (an additional std argument might be provided), but it is unspecified when and how this function is called.

Then, this function creates an array of type in the storage and starts its lifetime, but does not start lifetime of any of its elements.

In order to use this function in a constant expression, the allocated storage must be deallocated within the evaluation of the same expression.

Use of this function is ill-formed if is an incomplete type.

Return value
, where points to the first element of an array of  objects of type  whose elements have not been constructed yet.

Exceptions
Throws std if, or std if allocation fails.