命名空间
变体
操作

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 中弃用*)
(在 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 的虚拟私有成员函数)[编辑]