std::experimental::pmr::monotonic_buffer_resource:: do_allocate
|
virtual
void
*
do_allocate
(
std::
size_t
bytes,
std::
size_t
alignment
)
;
|
(库基础技术规范) | |
分配存储空间。
如果 当前缓冲区 具有足够的未使用空间来容纳指定大小和对齐要求的块,则从当前缓冲区分配返回块。
否则,此函数通过调用
upstream_resource()->allocate(n, m)
分配新缓冲区,其中
n
不小于
bytes
与
下一缓冲区大小
中的较大值,且
m
不小于
alignment
。它将新缓冲区设置为
当前缓冲区
,按实现定义的增长因子(不一定是整数)增加
下一缓冲区大小
,然后从新分配的缓冲区中分配返回块。
返回值
指向已分配存储的指针,其大小至少为 bytes 字节,若支持指定对齐方式则按 alignment 对齐,否则按 alignof ( std:: max_align_t ) 对齐。
异常
除非在上游内存资源上调用
allocate()
时抛出异常,否则不会抛出任何异常。
参见
|
分配内存
(
std::experimental::pmr::memory_resource
的公开成员函数)
|
|
|
[virtual]
|
分配内存
(
std::experimental::pmr::memory_resource
的虚保护成员函数)
|