然而,我认为已经存在的
std::allocator<T>::allocate_at_least
通过调用
::operator new
(还可以提供一个额外的std::align_val_t
参数),分配至少n
个未初始化的存储空间,每个存储空间的大小为count * sizeof(T)
字节,其中count
是一个未指定的整数值,但不小于n
。然后,该函数在该存储空间中创建
T[count]
类型的数组,并开始其生命周期,但不会开始任何元素的生命周期。
std::allocator<T>::allocate
可以完成同样的任务。
为什么我们需要C++23中的std::allocator<T>::allocate_at_least
?