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.