次の方法で共有


rts_alloc クラス

rts_alloc クラス テンプレートは、キャッシュ インスタンスの配列を保持し、コンパイル時ではなく、実行時に割り当てと割り当て解除に使用するインスタンスを判別するフィルターを記述します。

構文

template <class Cache>
class rts_alloc

パラメーター

キャッシュ
配列に含まれているキャッシュ インスタンスの型。 cache_chunklistcache_freelist、または cache_suballoc を指定できます。

解説

このクラス テンプレートは、複数のブロック アロケーター インスタンスを保持し、コンパイル時ではなく、実行時に割り当てと割り当て解除に使用するインスタンスを判別します。 再バインドをコンパイルできないコンパイラと一緒に使用します。

メンバー関数

メンバー関数 説明
allocate メモリのブロックを割り当てます。
deallocate 指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。
equals 2 つのキャッシュが等しいかどうかを比較します。

要件

ヘッダー: <allocators>

名前空間: stdext

rts_alloc::allocate

メモリのブロックを割り当てます。

void *allocate(std::size_t count);

パラメーター

count
割り当てられる配列内の要素の数。

戻り値

割り当てられたオブジェクトへのポインター。

解説

メンバー関数は、要求されたブロック サイズ count によってインデックス _IDX が定義される caches[_IDX].allocate(count) を返します。また count が大きすぎる場合は operator new(count) を返します。 キャッシュ オブジェクトを表す cache

rts_alloc::d eallocate

指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。

void deallocate(void* ptr, std::size_t count);

パラメーター

ptr
記憶域から割り当てを解除される最初のオブジェクトへのポインター。

count
記憶域から割り当てを解除されるオブジェクトの数。

解説

メンバー関数は、要求されたブロック サイズ count によってインデックス _IDX が定義される caches[_IDX].deallocate(ptr, count) を呼び出します。また count が大きすぎる場合は operator delete(ptr) を返します。

rts_alloc::equals

2 つのキャッシュが等しいかどうかを比較します。

bool equals(const sync<_Cache>& _Other) const;

パラメーター

_Cache
フィルターに関連付けられているキャッシュ オブジェクト。

_Other
等しいかどうかを比較するキャッシュ オブジェクト。

解説

caches[0].equals(other.caches[0]) の結果の場合は true、それ以外の場合は false です。 caches はキャッシュ オブジェクトの配列を表します。

関連項目

ALLOCATOR_DECL
<allocators>