std::experimental::pmr::monotonic_buffer_resource::do_allocate
来自cppreference.com
< cpp | experimental | monotonic buffer resource
virtual void* do_allocate( std::size_t bytes, std::size_t alignment ); |
(库基础 TS) | |
分配存储。
如果 当前缓冲区 有足够的未使用空间适配指定的大小和对齐,则从当前缓冲区分配要返回的块。
否则,此函数通过调用 upstream_resource()->allocate(n, m)
分配新的缓冲区,其中 n
不小于 bytes 和 下一个缓冲区大小 中的较大值,且 and m
不小于 alignment。它将新缓冲区设置为其当前缓冲区,以实现定义的增长率(不必是整数)增加 下一个缓冲区大小,然后从新分配的缓冲区重分配要返回的块。
返回值
指向至少 bytes 字节大小的已分配存储的指针,若支持对齐 alignment 则按其对齐,否则对齐到 alignof(std::max_align_t)。
异常
除了调用上游内存资源的 allocate()
所抛出之外不抛出异常。
参阅
分配内存 ( Template:cpp/experimental/memory resource/title 的公开成员函数) | |
[虚] |
分配内存 ( Template:cpp/experimental/memory resource/title 的虚受保护成员函数) |