命名空间
变体
操作

std::pmr::monotonic_buffer_resource::do_allocate

来自 cppreference.cn
 
 
内存管理库
(仅作说明*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
内存资源
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化存储
(直到 C++20*)
(直到 C++20*)
显式生命周期管理
 
 
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的公共成员函数) [编辑]
[虚函数]
分配内存
(std::pmr::memory_resource的虚私有成员函数)[编辑]