命名空间
变体
操作

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

来自 cppreference.cn
 
 
 
 
 
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`的公共成员函数) [编辑]
[virtual]
分配内存
(`std::experimental::pmr::memory_resource`的虚保护成员函数) [编辑]
English 日本語 中文(简体) 中文(繁體)