根据cppref:
std::allocator<T>::allocate_at_least
通过调用 分配
count * sizeof(T)
未初始化存储的字节,其中count
是一个不小于 的未指定整数值(可能会提供附加参数),但未指定何时以及如何调用此函数。n
::operator new
std::align_val_t
然后,此函数在存储中创建一个类型数组
T[count]
并开始其生命周期,但不开始其任何元素的生命周期。
但是,我认为已经存在的std::allocator<T>::allocate
也可以做同样的事情。
为什么我们需要 std::allocator<T>::allocate_at_least
在 C++23 中?