cache_freelist Sınıfı
Tek boyuttaki bellek bloklarını ayıran ve serbest bırakacak bir blok ayırıcı tanımlar.
Sözdizimi
template <std::size_t Sz, class Max>
class cache_freelist
Parametreler
Sz
Dizideki ayrılacak öğe sayısı.
Maksimum
Ücretsiz listenin en büyük boyutunu temsil eden maksimum sınıf. Bu max_fixed_size, max_none, max_unbounded veya max_variable_size olabilir.
Açıklamalar
cache_freelist sınıf şablonu, Sz boyutunda bellek bloklarının ücretsiz bir listesini tutar. Boş liste dolduğunda bellek bloklarını serbest bırakmak için işleç silmeyi kullanır. Boş liste boş olduğunda, yeni bellek bloklarını ayırmak için new işlecini kullanır. Ücretsiz listenin en büyük boyutu, Max parametresinde geçirilen maksimum sınıf sınıfı tarafından belirlenir.
Her bellek bloğu, kullanılabilir belleğin Sz baytlarını ve yeni ve işleç silme işlecinin gerektirdiği verileri tutar.
Oluşturucular
Oluşturucu | Açıklama |
---|---|
cache_freelist | türünde cache_freelist bir nesnesi oluşturur. |
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
allocate | Bir bellek bloğu ayırır. |
Ayırması | Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın. |
Gereksinimler
Üst bilgi:<ayırıcılar>
Ad alanı: stdext
cache_freelist::allocate
Bir bellek bloğu ayırır.
void *allocate(std::size_t count);
Parametreler
count
Dizideki ayrılacak öğe sayısı.
Dönüş Değeri
Ayrılan nesnenin işaretçisi.
Açıklamalar
cache_freelist::cache_freelist
türünde cache_freelist
bir nesnesi oluşturur.
cache_freelist();
Açıklamalar
cache_freelist::d eallocate
Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın.
void deallocate(void* ptr, std::size_t count);
Parametreler
ptr
Depolama alanından serbest bırakılacak ilk nesnenin işaretçisi.
count
Depolama alanından serbest bırakılacak nesne sayısı.