名前空間
変種
操作

std::pmr::monotonic_buffer_resource::do_allocate

From cppreference.com
 
 
メモリ管理ライブラリ
(説明用*)
未初期化メモリのアルゴリズム
(C++17)
(C++17)
(C++17)
制約付き未初期化
メモリアルゴリズム
Cライブラリ

アロケータ
メモリリソース
ガベージコレクションのサポート
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
未初期化ストレージ
(C++20まで*)
(C++20まで*)
明示的な生存期間管理
 
 
virtual void* do_allocate( std::size_t bytes, std::size_t alignment );
(C++17以降)

ストレージを確保します。

現在のバッファに、指定されたサイズとアラインメントのブロックが収まるのに十分な未使用領域がある場合、現在のバッファから戻りブロックを割り当てます。

それ以外の場合、この関数は upstream_resource()->allocate(n, m) を呼び出して新しいバッファを割り当てます。ここで、nbytes次のバッファサイズ のうち大きい方以上であり、malignment 以上です。新しいバッファを 現在のバッファ に設定し、実装定義の成長係数(必ずしも整数とは限らない)で 次のバッファサイズ を増やしてから、新しく割り当てられたバッファから戻りブロックを割り当てます。

[編集] 戻り値

少なくとも bytes バイトのサイズで、指定された alignment にアラインされた(そのようなアラインメントがサポートされている場合)、そうでなければ alignof(std::max_align_t) にアラインされた、確保されたストレージへのポインタ。

[編集] 例外

上位のメモリリソースの allocate() の呼び出しが例外をスローしない限り、何もスローしません。

[編集] 関連項目

メモリを割り当てる
(std::pmr::memory_resource の public メンバー関数) [編集]
[virtual]
メモリを割り当てる
(std::pmr::memory_resource の virtual private メンバ関数)[編集]
English 日本語 中文(简体) 中文(繁體)