According to cppref:
std::allocator<T>::allocate_at_leastAllocates
count * sizeof(T)bytes of uninitialized storage, wherecountis an unspecified integer value not less thann, by calling::operator new(an additionalstd::align_val_targument might be provided), but it is unspecified when and how this function is called.Then, this function creates an array of type
T[count]in the storage and starts its lifetime, but does not start lifetime of any of its elements.
However, I think the already existing std::allocator<T>::allocate can do the same thing.
Why do we need std::allocator<T>::allocate_at_least in C++23?