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 の仮想プライベートメンバ関数)