Bagikan melalui


Kelas allocator_traits

Templat kelas menjelaskan objek yang melengkapi jenis alokator. Jenis alokator adalah jenis apa pun yang menjelaskan objek alokator yang digunakan untuk mengelola penyimpanan yang dialokasikan. Secara khusus, untuk jenis Allocalokator apa pun, Anda dapat menggunakan allocator_traits<Alloc> untuk menentukan semua informasi yang diperlukan oleh kontainer berkemampuan alokator. Untuk informasi selengkapnya, lihat Kelas alokator default.

Sintaks

template <class Alloc>
    class allocator_traits;

Anggota

Typedefs

Nama Deskripsi
allocator_type Jenis ini adalah sinonim untuk parameter Alloctemplat .
const_pointer Jenis ini adalah Alloc::const_pointer, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah pointer_traits<pointer>::rebind<const value_type>.
const_void_pointer Jenis ini adalah Alloc::const_void_pointer, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah pointer_traits<pointer>::rebind<const void>.
difference_type Jenis ini adalah Alloc::difference_type, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah pointer_traits<pointer>::difference_type.
pointer Jenis ini adalah Alloc::pointer, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah value_type *.
propagate_on_container_copy_assignment Jenis ini adalah Alloc::propagate_on_container_copy_assignment, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah false_type.
propagate_on_container_move_assignment Jenis ini adalah Alloc::propagate_on_container_move_assignment, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah false_type. Jika jenis menyimpan true, kontainer berkemampuan alokator menyalin alokator tersimpannya pada penetapan pemindahan.
propagate_on_container_swap Jenis ini adalah Alloc::propagate_on_container_swap, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah false_type. Jika jenis memegang true, kontainer dengan dukungan alokator menukar alokator tersimpannya pada pertukaran.
size_type Jenis ini adalah Alloc::size_type, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah make_unsigned<difference_type>::type.
value_type Jenis ini adalah sinonim untuk Alloc::value_type.
void_pointer Jenis ini adalah Alloc::void_pointer, jika jenis tersebut terbentuk dengan baik; jika tidak, jenis ini adalah pointer_traits<pointer>::rebind<void>.

Metode Statis

Metode statis berikut memanggil metode yang sesuai pada parameter alokator tertentu.

Nama Deskripsi
Mengalokasikan Metode statis yang mengalokasikan memori dengan menggunakan parameter alokator yang diberikan.
membangun Metode statis yang menggunakan alokator tertentu untuk membangun objek.
batalkan alokasi Metode statis yang menggunakan alokator tertentu untuk membatalkan alokasi jumlah objek tertentu.
menghancurkan Metode statis yang menggunakan alokator tertentu untuk memanggil destruktor pada objek tanpa membatalkan alokasi memorinya.
max_size Metode statis yang menggunakan alokator tertentu untuk menentukan jumlah maksimum objek yang dapat dialokasikan.
select_on_container_copy_construction Metode statis yang memanggil select_on_container_copy_construction pada alokator yang ditentukan.

mengalokasikan

Metode statis yang mengalokasikan memori dengan menggunakan parameter alokator yang diberikan.

static pointer allocate(Alloc& al, size_type count);

static pointer allocate(Alloc& al, size_type count,
    typename allocator_traits<void>::const_pointer* hint);

Parameter

Al
Objek alokator.

count
Jumlah elemen yang akan dialokasikan.

Petunjuk
Yang const_pointer mungkin membantu objek alokator dalam memenuhi permintaan penyimpanan dengan menemukan alamat objek yang dialokasikan sebelum permintaan. Pointer null diperlakukan sebagai tidak ada petunjuk.

Tampilkan Nilai

Setiap metode mengembalikan penunjuk ke objek yang dialokasikan.

Metode statis pertama mengembalikan al.allocate(count).

Metode kedua mengembalikan al.allocate(count, hint), jika ekspresi tersebut terbentuk dengan baik; jika tidak, metode tersebut mengembalikan al.allocate(count).

membangun

Metode statis yang menggunakan alokator tertentu untuk membangun objek.

template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);

Parameter

Al
Objek alokator.

ptr
Penunjuk ke lokasi tempat objek akan dibangun.

argumen
Daftar argumen yang diteruskan ke konstruktor objek.

Keterangan

Fungsi anggota statis memanggil al.construct(ptr, args...), jika ekspresi tersebut terbentuk dengan baik; jika tidak, fungsi tersebut mengevaluasi ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...).

batalkan alokasi

Metode statis yang menggunakan alokator tertentu untuk membatalkan alokasi jumlah objek tertentu.

static void deallocate(Alloc al,
    pointer ptr,
    size_type count);

Parameter

Al
Objek alokator.

ptr
Penunjuk ke lokasi awal objek yang akan dibatalkan alokasinya.

count
Jumlah objek yang akan dibatalkan alokasinya.

Keterangan

Metode ini memanggil al.deallocate(ptr, count).

Metode ini tidak melempar apa-apa.

menghancurkan

Metode statis yang menggunakan alokator tertentu untuk memanggil destruktor pada objek tanpa membatalkan alokasi memorinya.

template <class Uty>
    static void destroy(Alloc& al, Uty* ptr);

Parameter

Al
Objek alokator.

ptr
Penunjuk ke lokasi objek.

Keterangan

Metode ini memanggil al.destroy(ptr), jika ekspresi tersebut terbentuk dengan baik; jika tidak, metode ini mengevaluasi ptr->~Uty().

max_size

Metode statis yang menggunakan alokator tertentu untuk menentukan jumlah maksimum objek yang dapat dialokasikan.

static size_type max_size(const Alloc& al);

Parameter

Al
Objek alokator.

Keterangan

Metode ini mengembalikan al.max_size(), jika ekspresi tersebut terbentuk dengan baik; jika tidak, maka akan mengembalikan numeric_limits<size_type>::max().

select_on_container_copy_construction

Metode statis yang memanggil select_on_container_copy_construction pada alokator yang ditentukan.

static Alloc select_on_container_copy_construction(const Alloc& al);

Parameter

Al
Objek alokator.

Tampilkan Nilai

Metode ini mengembalikan al.select_on_container_copy_construction(), jika jenis tersebut terbentuk dengan baik; jika tidak, metode tersebut mengembalikan al.

Keterangan

Metode ini digunakan untuk menentukan alokator ketika kontainer terkait dibuat salinan.