rts_alloc – třída
Šablona třídy rts_alloc popisuje filtr , který obsahuje pole instancí mezipaměti a určuje, která instance se má použít pro přidělení a uvolnění za běhu místo v době kompilace.
Syntaxe
template <class Cache>
class rts_alloc
Parametry
Cache
Typ instancí mezipaměti obsažených v poli. Může to být cache_chunklist
, cache_freelist
nebo cache_suballoc
.
Poznámky
Tato šablona třídy obsahuje více instancí alokátoru bloku a určuje, která instance se má použít pro přidělení nebo uvolnění za běhu místo v době kompilace. Používá se s kompilátory, které nemohou zkompilovat rebind.
Členské funkce
Členová funkce | Popis |
---|---|
allocate | Přidělí blok paměti. |
uvolnit | Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí. |
equals | Porovná dvě mezipaměti pro rovnost. |
Požadavky
Záhlaví:<alokátory>
Namespace: stdext
rts_alloc::přidělení
Přidělí blok paměti.
void *allocate(std::size_t count);
Parametry
count
Počet prvků v poli, které se mají přidělit.
Návratová hodnota
Ukazatel na přidělený objekt.
Poznámky
Členová funkce vrátí caches[_IDX].allocate(count)
hodnotu , kde index _IDX
je určen požadovaným počtem velikostí bloku, nebo pokud je počet příliš velký, vrátí operator new(count)
. cache
, který představuje objekt mezipaměti.
rts_alloc::d eallocate
Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí.
void deallocate(void* ptr, std::size_t count);
Parametry
ptr
Ukazatel na první objekt, který se má uvolnit z úložiště.
count
Počet objektů, které se mají uvolnit z úložiště.
Poznámky
Členské funkce volá caches[_IDX].deallocate(ptr, count)
, kde index _IDX
je určen požadovaným počtem velikostí bloku, nebo pokud je počet příliš velký, vrátí operator delete(ptr)
.
rts_alloc::equals
Porovná dvě mezipaměti pro rovnost.
bool equals(const sync<_Cache>& _Other) const;
Parametry
_Mezipaměť
Objekt mezipaměti přidružený k filtru.
_Jiný
Objekt mezipaměti, který se má porovnat s rovností.
Poznámky
true
je-li výsledek caches[0].equals(other.caches[0])
; v opačném případě , false
. caches
představuje pole objektů mezipaměti.