Aracılığıyla paylaş


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ü Allociç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 Allociçin bir eş anlamlıdır.
const_pointer Bu tür, Alloc::const_pointerbu 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_pointerbu 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_typebu tür iyi biçimlendirilmişse olur; aksi takdirde, bu tür olur pointer_traits<pointer>::difference_type.
pointer Bu tür, Alloc::pointerbu 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_assignmentbu 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_assignmentbu 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_swapbu 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_typebu 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_typebir eş anlamlıdır.
void_pointer Bu tür, Alloc::void_pointerbu 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.