名前空間
変種
操作

std::pmr::monotonic_buffer_resource::do_allocate

提供: cppreference.com
 
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
virtual void* do_allocate(std::size_t bytes, std::size_t alignment);
(C++17以上)

記憶域を確保します。

指定されたサイズおよびアライメントを持つブロックを収められる十分な未使用領域が現在のバッファにあれば、現在のバッファから返すブロックを確保します。

そうでなければ、この関数は upstream_resource()->allocate(n, m) を呼ぶことによって新しいバッファを確保します。 ただし nbytes次のバッファサイズの大きい方より小さくない値で、 malignment より小さくない値です。 その新しいバッファを現在のバッファとして設定し、次のバッファサイズを処理系定義の増加係数 (整数であるとは限りません) によって増加させ、新たに確保したバッファから返すブロックを確保します。

[編集] 戻り値

そのようなアライメントがサポートされていれば指定された alignment に、そうでなければ alignof(std::max_align_t) にアラインされた、少なくとも bytes バイトのサイズの、確保された記憶域を指すポインタ。

[編集] 例外

上流メモリリソースの allocate() の呼び出しが投げなければ何も投げません。

[編集] 関連項目

メモリを確保します
(std::pmr::memory_resourceのパブリックメンバ関数) [edit]
[仮想]
メモリを確保します
(std::pmr::memory_resourceの仮想プライベートメンバ関数) [edit]