Namespaces
Variants

std::pmr::monotonic_buffer_resource:: do_allocate

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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 的公开成员函数)
[virtual]
分配内存
( std::pmr::memory_resource 的虚私有成员函数)