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