名稱空間
變體
操作

std::experimental::pmr::monotonic_buffer_resource::do_allocate

來自 cppreference.com
 
 
 
 
 
virtual void* do_allocate( std::size_t bytes, std::size_t alignment );
(庫基礎 TS)

分配儲存。

如果*當前緩衝區*有足夠的未使用空間來容納具有指定大小和對齊方式的塊,則從當前緩衝區分配返回塊。

否則,此函式透過呼叫`upstream_resource()->allocate(n, m)`分配一個新緩衝區,其中`n`不小於`bytes`和*下一個緩衝區大小*中的較大者,`m`不小於`alignment`。它將新緩衝區設定為*當前緩衝區*,透過實現定義的增長因子(不一定是整數)增加*下一個緩衝區大小*,然後從新分配的緩衝區分配返回塊。

[編輯] 返回值

一個指向已分配儲存的指標,其大小至少為`bytes`位元組,如果支援對齊,則按照指定的`alignment`對齊,否則按照`alignof(std::max_align_t)`對齊。

[編輯] 異常

除非呼叫上游記憶體資源的 allocate() 丟擲異常,否則不丟擲任何異常。

[編輯] 另請參閱

分配記憶體
(`std::experimental::pmr::memory_resource`的公共成員函式) [編輯]
[virtual]
分配記憶體
(`std::experimental::pmr::memory_resource`的虛保護成員函式) [編輯]