std::pmr::monotonic_buffer_resource::do_allocate
STD::PMR:单调[医]缓冲器[医]资源::DO[医]分配
virtual void* do_allocate(std::size_t bytes, std::size_t alignment | | (since C++17) |
---|
分配存储。
如果电流缓冲器
有足够的未使用空间来适合具有指定大小和对齐方式的块,则从当前缓冲区分配返回块。
否则,此函数将通过调用upstream_resource()->allocate(n, m),在哪里n不少于bytes而下一缓冲区大小和m不少于alignment它将新缓冲区设置为电流缓冲器,增加下一缓冲区大小通过实现定义的增长因子%28(不一定是整数%29),然后从新分配的缓冲区分配返回块。
返回值
指向至少分配的存储的指针bytes
大小对齐的字节。alignment
如果支持这种对齐,则alignof(
std::max_align_t
)
否则。
例外
除非调用allocate()
在上游内存资源抛出。
另见
allocate | allocates memory (public member function of std::pmr::memory_resource) |
---|---|
do_allocate virtual | allocates memory (virtual private member function of std::pmr::memory_resource) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。
http://en.cppreference.com/w/cpp/Memory/单调[医]缓冲器[医]资源/做[医]分配