Freigeben über


rts_alloc-Klasse

Die rts_alloc Klassenvorlage beschreibt einen Filter , der ein Array von Cacheinstanzen enthält und bestimmt, welche Instanz zur Laufzeit anstelle der Kompilierungszeit für die Zuordnung und den Deallocation verwendet werden soll.

Syntax

template <class Cache>
class rts_alloc

Parameter

Cache
Der Typ der Cache-Instanzen, die im Array enthalten sind. Es kann sich um cache_chunklist, cache_freelist oder cache_suballoc handeln.

Hinweise

Diese Klassenvorlage enthält mehrere Block-Allocatorinstanzen und bestimmt, welche Instanz zur Laufzeit anstelle der Kompilierungszeit für die Zuordnung oder den Deallocation verwendet werden soll. Sie wird mit Compilern verwendet, die keine Neubindungen kompilieren können.

Memberfunktionen

Memberfunktion Beschreibung
allocate Belegt einen Speicherblock.
deallocate Gibt eine angegebene Anzahl von Objekten im Speicher frei, beginnend an einer angegebenen Position.
equals Vergleicht zwei Caches auf Gleichheit.

Anforderungen

Header:<allocators>

Namespace: stdext

rts_alloc::zuweisung

Belegt einen Speicherblock.

void *allocate(std::size_t count);

Parameter

count
Die Anzahl der zuzuweisenden Elemente im Array

Rückgabewert

Zeiger auf das zugewiesene Objekt.

Hinweise

Die Memberfunktion gibt zurückcaches[_IDX].allocate(count), wobei der Index _IDX durch die angeforderte Anzahl der Blockgrößen bestimmt wird, oder wenn die Anzahl zu groß ist, wird er zurückgegebenoperator new(count). cache, das das Cache-Objekt darstellt.

rts_alloc::d eallocate

Gibt eine angegebene Anzahl von Objekten im Speicher frei, beginnend an einer angegebenen Position.

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

Parameter

ptr
Ein Zeiger auf das erste Objekt, dessen Zuweisung zum Speicher aufgehoben werden soll.

count
Die Anzahl von Objekten, deren Zuweisung zum Speicherplatz aufgehoben werden soll.

Hinweise

Die Memberfunktion ruft aufcaches[_IDX].deallocate(ptr, count), wobei der Index _IDX durch die angeforderte Anzahl der Blockgrößen bestimmt wird, oder wenn die Anzahl zu groß ist, wird er zurückgegebenoperator delete(ptr).

rts_alloc::equals

Vergleicht zwei Caches auf Gleichheit.

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

Parameter

_Cache
Das Cache-Objekt, das dem Filter zugeordnet ist.

_Other
Das Cache-Objekt, das auf Gleichheit verglichen werden soll.

Hinweise

true, wenn das Ergebnis caches[0].equals(other.caches[0]), andernfalls false. caches stellt das Array von Cache-Objekten dar.

Siehe auch

ALLOCATOR_DECL
<allocators>