cache_freelist-Klasse
Definiert eine Blockzuweisung, die Speicherblöcke einheitlicher Größe zuweist und freigibt.
Syntax
template <std::size_t Sz, class Max>
class cache_freelist
Parameter
Sz
Die Anzahl der zuzuweisenden Elemente im Array
Max
Die max-Klasse, die die maximale Größe der Freiliste angibt. Dies kann max_fixed_size, max_none, max_unbounded oder max_variable_size sein.
Hinweise
Die cache_freelist Klassenvorlage verwaltet eine kostenlose Liste der Speicherblöcke der Größe Sz. Wenn die kostenlose Liste voll ist, verwendet sie die Operatorlöschung , um Speicherblöcke zu behandeln. Wenn die kostenlose Liste leer ist, wird der Operator neu verwendet, um neue Speicherblöcke zuzuweisen. Die maximale Größe der kostenlosen Liste wird durch die klasse max klasse bestimmt, die im Parameter Max übergeben wird.
Jeder Speicherblock enthält Sz Bytes des verwendbaren Speichers, und die Daten, die der Operator löschen muss, sind erforderlich.
Konstruktoren
Konstruktor | Beschreibung |
---|---|
cache_freelist | Konstruiert ein Objekt vom Typ cache_freelist . |
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
allocate | Belegt einen Speicherblock. |
deallocate | Gibt eine angegebene Anzahl von Objekten im Speicher frei, beginnend an einer angegebenen Position. |
Anforderungen
Header:<allocators>
Namespace: stdext
cache_freelist::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
cache_freelist::cache_freelist
Konstruiert ein Objekt vom Typ cache_freelist
.
cache_freelist();
Hinweise
cache_freelist::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.