Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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;