命名空间
变体
操作

std::experimental::pmr::monotonic_buffer_resource::do_allocate

来自 cppreference.com
 
 
 
 
 
virtual void* do_allocate( std::size_t bytes, std::size_t alignment );
(库基础 TS)

分配存储。

如果当前缓冲区有足够的未用空间来容纳大小和对齐方式指定的块,则从当前缓冲区分配返回块。

否则,此函数通过调用 upstream_resource()->allocate(n, m) 分配一个新缓冲区,其中 n 不小于 bytes下一个缓冲区大小的较大值,而 m 不小于 alignment。它将新缓冲区设置为当前缓冲区,将下一个缓冲区大小增加一个实现定义的增长因子(不一定为整数),然后从新分配的缓冲区分配返回块。

[编辑] 返回值

指向分配的存储区的指针,其大小至少为 bytes 字节,如果支持指定的对齐方式,则对齐到指定的 alignment,否则对齐到 alignof(std::max_align_t)

[编辑] 异常

除非在上游内存资源上调用 allocate() 抛出异常,否则不会抛出任何异常。

[编辑] 另请参阅

分配内存
(std::experimental::pmr::memory_resource 的公共成员函数) [编辑]
[虚拟]
分配内存
(std::experimental::pmr::memory_resource 的虚拟受保护成员函数) [编辑]