Aracılığıyla paylaş


allocator_base Sınıfı

Bir eşitleme filtresinden kullanıcı tanımlı ayırıcı oluşturmak için gereken temel sınıfı ve ortak işlevleri tanımlar.

Sözdizimi

template <class Type, class Sync>
class allocator_base

Parametreler

Tür
Ayırıcı tarafından ayrılan öğelerin türü.

Eşitleme
Sync_none Sınıfı, sync_per_container Sınıfı, sync_per_thread Sınıfı veya sync_shared Sınıfı olan ayırıcı için eşitleme ilkesi.

Oluşturucular

Oluşturucu Açıklama
allocator_base türünde allocator_basebir nesnesi oluşturur.

Tür tanımları

Tür adı Açıklama
const_pointer Ayırıcı tarafından yönetilen nesne türüne sabit bir işaretçi sağlayan tür.
const_reference Ayırıcı tarafından yönetilen nesne türüne sabit başvuru sağlayan bir tür.
difference_type ayırıcı tarafından yönetilen nesne türüne yönelik işaretçi değerleri arasındaki farkı temsil eden imzalı tam sayı türü.
Işaretçi Ayırıcı tarafından yönetilen nesne türüne yönelik bir işaretçi sağlayan tür.
referans Ayırıcı tarafından yönetilen nesne türüne başvuru sağlayan bir tür.
size_type Türdeki bir nesnenin ayırabileceği herhangi bir sıranın uzunluğunu temsil eden imzasız bir tamsayı türü allocator_base .
value_type Ayırıcı tarafından yönetilen bir tür.

Üye işlevleri

Üye işlevi Açıklama
_Charalloc türünde charbir dizi için depolama ayırır.
_Chardealloc türündeki charöğeleri içeren dizi için depolama alanını boşaltıyor.
adres Değeri belirtilen bir nesnenin adresini bulur.
allocate En az belirli sayıda öğeyi depolayabilecek kadar büyük bir bellek bloğu ayırır.
yapmak Belirtilen bir değerle başlatılan belirli bir adreste belirli bir nesne türü oluşturur.
Ayırması Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın.
yıkmak Nesnenin depolandığı belleği serbest bırakmadan bir nesne yıkıcısını çağırır.
max_size Boş bellek kullanılmadan önce sınıf ayırıcı nesnesi tarafından ayrılabilecek Tür türünde öğelerin sayısını döndürür.

Gereksinimler

Üst bilgi:<ayırıcılar>

Ad alanı: stdext

allocator_base::_Charalloc

türünde charbir dizi için depolama ayırır.

char *_Charalloc(size_type count);

Parametreler

count
Dizideki ayrılacak öğe sayısı.

Dönüş Değeri

Ayrılan nesnenin işaretçisi.

Açıklamalar

Bu üye işlevi, yeniden bağlama derlenemiyor bir derleyici ile derlendiğinde kapsayıcılar tarafından kullanılır. Eşitleme filtresinin işlevine yapılan bir çağrının allocate sonucunu döndürerek kullanıcı tanımlı ayırıcı için uygular_Charalloc.

allocator_base::_Chardealloc

türündeki charöğeleri içeren dizi için depolama alanını boşaltıyor.

void _Chardealloc(void* ptr, size_type 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ı.

Açıklamalar

Bu üye işlevi, yeniden bağlama derlenemiyor bir derleyici ile derlendiğinde kapsayıcılar tarafından kullanılır. Eşitleme filtresinin işlevini çağırarak deallocate kullanıcı tanımlı ayırıcı için uygular_Chardealloc. İşaretçi ptr, aynı boyutta ve türde bir dizi nesnesi ayırarak ile eşit *thisolan bir ayırıcı nesnesi için çağrısı _Charalloc tarafından daha önce döndürülmüştür. _Chardealloc hiçbir zaman özel durum oluşturmaz.

allocator_base::address

Değeri belirtilen bir nesnenin adresini bulur.

pointer address(reference val);

const_pointer address(const_reference val);

Parametreler

Val
Adresi aranmakta olan nesnenin sabit veya nonconst değeri.

Dönüş Değeri

Sırasıyla const veya nonconst değerinin bulunduğu nesneye ilişkin sabit veya nonconst işaretçisi.

Açıklamalar

Bu üye işlevi, döndürerek &valkullanıcı tanımlı ayırıcı için uygulanır.

allocator_base::allocate

En az belirli sayıda öğeyi depolayabilecek kadar büyük bir bellek bloğu ayırır.

template <class Other>
pointer allocate(size_type _Nx, const Other* _Hint = 0);

pointer allocate(size_type _Nx);

Parametreler

_Nx
Dizideki ayrılacak öğe sayısı.

_İma
Bu parametre yoksayıldı.

Dönüş Değeri

Ayrılan nesnenin işaretçisi.

Açıklamalar

Üye işlevi, türündeki eşitleme filtresinin _Nx == 1* işlevine allocate yapılan çağrının sonucunu döndürerek kullanıcı tanımlı ayırıcı için bellek ayırma uygular, aksi takdirde türüne türe operator new(_Nx * sizeof(Type)) dönüştürme çağrısının sonucunu döndürerek.*

allocator_base::allocator_base

türünde allocator_basebir nesnesi oluşturur.

allocator_base();

template <class Other>
allocator_base(const allocator_base<Other, Sync>& right);

Parametreler

Sağ
Kopyalanacak ayırıcı nesnesi.

Açıklamalar

İlk oluşturucu bir allocator_base örneği oluşturur. İkinci oluşturucu, herhangi allocator_base<Type, _Sync> bir örnek için , allocator_base<Type, Sync>(allocator_base<Other, Sync>(a)) == aşeklinde bir allocator_base örnek aoluşturur.

allocator_base::const_pointer

Ayırıcı tarafından yönetilen nesne türüne sabit bir işaretçi sağlayan tür.

typedef const Type *const_pointer;

allocator_base::const_reference

Ayırıcı tarafından yönetilen nesne türüne sabit başvuru sağlayan bir tür.

typedef const Type& const_reference;

allocator_base::construct

Belirtilen bir değerle başlatılan belirli bir adreste belirli bir nesne türü oluşturur.

void construct(pointer ptr, const Type& val);

Parametreler

ptr
Nesnenin oluşturulacağı konumun işaretçisi.

Val
Oluşturulmakta olan nesnenin başlatılacağı değerdir.

Açıklamalar

Bu üye işlevi, çağrılarak new((void*)ptr Type(val)kullanıcı tanımlı ayırıcı için uygulanır.

allocator_base::d eallocate

Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın.

void deallocate(pointer ptr, size_type _Nx);

Parametreler

ptr
Depolama alanından serbest bırakılacak ilk nesnenin işaretçisi.

_Nx
Depolama alanından serbest bırakılacak nesne sayısı.

Açıklamalar

Bu üye işlevi, kullanıcı tanımlı ayırıcı için, ise _Nx == 1eşitleme filtresinde Sync çağrılarak deallocate(ptr) uygulanır, aksi takdirde çağrısı operator delete(_Nx * ptr)yapılır.

allocator_base::d estroy

Nesnenin depolandığı belleği serbest bırakmadan bir nesne yıkıcısını çağırır.

void destroy(pointer ptr);

Parametreler

ptr
Yok edilecek nesnenin adresini belirleme işaretçisi.

Açıklamalar

Bu üye işlevi, çağrılarak ptr->~Type()kullanıcı tanımlı ayırıcı için uygulanır.

allocator_base::d ifference_type

ayırıcı tarafından yönetilen nesne türüne yönelik işaretçi değerleri arasındaki farkı temsil eden imzalı tam sayı türü.

typedef std::ptrdiff_t difference_type;

allocator_base::max_size

Boş bellek kullanılmadan önce sınıf ayırıcı nesnesi tarafından ayrılabilecek tür Type öğelerinin sayısını döndürür.

size_type max_size() const;

Dönüş Değeri

Ayrılabilecek öğe sayısı.

Açıklamalar

Bu üye işlevi, kullanıcı tanımlı ayırıcı için , 0 < (size_t)-1 / sizeof(Type)değilse 1döndürülerek (size_t)-1 / sizeof(Type) uygulanır.

allocator_base::p ointer

Ayırıcı tarafından yönetilen nesne türüne yönelik bir işaretçi sağlayan tür.

typedef Type *pointer;

allocator_base::reference

Ayırıcı tarafından yönetilen nesne türüne başvuru sağlayan bir tür.

typedef Type& reference;

allocator_base::size_type

Türdeki bir nesnenin ayırabileceği herhangi bir sıranın uzunluğunu temsil eden imzasız bir tamsayı türü allocator_base .

typedef std::size_t size_type;

allocator_base::value_type

Ayırıcı tarafından yönetilen bir tür.

typedef Type value_type;

Ayrıca bkz.

<Allocators>