allocator_traits Sınıfı
Sınıf şablonu, ayırıcı türünü tamamlayan bir nesneyi açıklar. Ayırıcı türü, ayrılmış depolamayı yönetmek için kullanılan ayırıcı nesnesini tanımlayan herhangi bir türdür. Özellikle, herhangi bir ayırıcı türü Alloc
için, ayırıcı özellikli bir kapsayıcının ihtiyaç duyduğu tüm bilgileri belirlemek için kullanabilirsiniz allocator_traits<Alloc>
. Daha fazla bilgi için bkz. varsayılan ayırıcı Sınıfı.
Sözdizimi
template <class Alloc>
class allocator_traits;
Üyeler
Tür tanımları
Veri Akışı Adı | Açıklama |
---|---|
allocator_type |
Bu tür, şablon parametresi Alloc için bir eş anlamlıdır. |
const_pointer |
Bu tür, Alloc::const_pointer bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur pointer_traits<pointer>::rebind<const value_type> . |
const_void_pointer |
Bu tür, Alloc::const_void_pointer bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur pointer_traits<pointer>::rebind<const void> . |
difference_type |
Bu tür, Alloc::difference_type bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur pointer_traits<pointer>::difference_type . |
pointer |
Bu tür, Alloc::pointer bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur value_type * . |
propagate_on_container_copy_assignment |
Bu tür, Alloc::propagate_on_container_copy_assignment bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur false_type . |
propagate_on_container_move_assignment |
Bu tür, Alloc::propagate_on_container_move_assignment bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur false_type . Tür true değerini barındırıyorsa, ayırıcı özellikli kapsayıcı bir taşıma ataması üzerinde depolanan ayırıcısını kopyalar. |
propagate_on_container_swap |
Bu tür, Alloc::propagate_on_container_swap bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur false_type . Tür true değerini barındırıyorsa ayırıcı özellikli kapsayıcı, depolanmış ayırıcısını bir takasta değiştirir. |
size_type |
Bu tür, Alloc::size_type bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur make_unsigned<difference_type>::type . |
value_type |
Bu tür, için Alloc::value_type bir eş anlamlıdır. |
void_pointer |
Bu tür, Alloc::void_pointer bu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur pointer_traits<pointer>::rebind<void> . |
Statik Yöntemler
Aşağıdaki statik yöntemler, belirli bir ayırıcı parametresinde karşılık gelen yöntemi çağırır.
Veri Akışı Adı | Açıklama |
---|---|
allocate | Verilen ayırıcı parametresini kullanarak bellek ayıran statik yöntem. |
yapmak | Bir nesne oluşturmak için belirtilen ayırıcıyı kullanan statik yöntem. |
Ayırması | Belirtilen sayıda nesneyi serbest bırakmak için belirtilen ayırıcıyı kullanan statik yöntem. |
yıkmak | Bir nesnedeki yıkıcıyı belleği serbest bırakmadan çağırmak için belirtilen ayırıcıyı kullanan statik yöntem. |
max_size | Ayrılabilecek en fazla nesne sayısını belirlemek için belirtilen ayırıcıyı kullanan statik yöntem. |
select_on_container_copy_construction | Belirtilen ayırıcıyı çağıran select_on_container_copy_construction statik yöntem. |
allocate
Verilen ayırıcı parametresini kullanarak bellek ayıran statik yöntem.
static pointer allocate(Alloc& al, size_type count);
static pointer allocate(Alloc& al, size_type count,
typename allocator_traits<void>::const_pointer* hint);
Parametreler
al
Ayırıcı nesnesi.
count
Ayrılacak öğe sayısı.
ima
const_pointer
Ayırma nesnesinin, istek öncesinde ayrılmış bir nesnenin adresini bularak depolama isteğini karşılamasına yardımcı olabilecek bir. Null işaretçi ipucu yok olarak kabul edilir.
Dönüş Değeri
Her yöntem, ayrılan nesneye bir işaretçi döndürür.
İlk statik yöntem döndürür al.allocate(count)
.
İkinci yöntem al.allocate(count, hint)
, bu ifade iyi biçimlendirilmişse döndürür; aksi takdirde döndürür al.allocate(count)
.
yapmak
Bir nesne oluşturmak için belirtilen ayırıcıyı kullanan statik yöntem.
template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);
Parametreler
al
Ayırıcı nesnesi.
ptr
Nesnenin oluşturulacağı konumun işaretçisi.
args
Nesne oluşturucuya geçirilen bağımsız değişkenlerin listesi.
Açıklamalar
Statik üye işlevi, bu ifade iyi biçimlendirilmişse öğesini çağırır al.construct(ptr, args...)
; aksi takdirde değerini değerlendirir ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...)
.
Ayırması
Belirtilen sayıda nesneyi serbest bırakmak için belirtilen ayırıcıyı kullanan statik yöntem.
static void deallocate(Alloc al,
pointer ptr,
size_type count);
Parametreler
al
Ayırıcı nesnesi.
ptr
Serbest bırakılacak nesnelerin başlangıç konumunun işaretçisi.
count
Serbest bırakıla nesne sayısı.
Açıklamalar
Bu yöntem çağırır al.deallocate(ptr, count)
.
Bu yöntem hiçbir şey atamaz.
yıkmak
Bir nesnedeki yıkıcıyı belleği serbest bırakmadan çağırmak için belirtilen ayırıcıyı kullanan statik yöntem.
template <class Uty>
static void destroy(Alloc& al, Uty* ptr);
Parametreler
al
Ayırıcı nesnesi.
ptr
Nesnenin konumunun işaretçisi.
Açıklamalar
Bu yöntem, bu ifade iyi biçimlendirilmişse öğesini çağırır al.destroy(ptr)
; aksi takdirde değerini değerlendirir ptr->~Uty()
.
max_size
Ayrılabilecek en fazla nesne sayısını belirlemek için belirtilen ayırıcıyı kullanan statik yöntem.
static size_type max_size(const Alloc& al);
Parametreler
al
Ayırıcı nesnesi.
Açıklamalar
Bu yöntem al.max_size()
, bu ifade iyi biçimlendirilmişse döndürür; aksi takdirde döndürür numeric_limits<size_type>::max()
.
select_on_container_copy_construction
Belirtilen ayırıcıyı çağıran select_on_container_copy_construction
statik yöntem.
static Alloc select_on_container_copy_construction(const Alloc& al);
Parametreler
al
Ayırıcı nesnesi.
Dönüş Değeri
Bu yöntem, bu tür iyi biçimlendirilmişse döndürüral.select_on_container_copy_construction()
; aksi takdirde al döndürür.
Açıklamalar
Bu yöntem, ilişkili kapsayıcı kopya oluşturulurken ayırıcı belirtmek için kullanılır.