allocator_traits, classe

Le modèle de classe décrit un objet qui complète un type d’allocateur. Un type d’allocateur est tout type qui décrit un objet allocateur utilisé pour la gestion de stockage alloué. Plus précisément, pour tout type d’allocateur Alloc, vous pouvez utiliser allocator_traits<Alloc> afin de déterminer toutes les informations nécessaires pour un conteneur compatible avec l’allocateur. Pour plus d’informations, consultez allocator, classe.

Syntaxe

template <class Alloc>
    class allocator_traits;

Membres

Typedefs

Nom Description
allocator_type Le type est un synonyme du paramètre de modèle Alloc.
const_pointer Ce type est Alloc::const_pointer s’il est correctement construit ; sinon, pointer_traits<pointer>::rebind<const value_type>.
const_void_pointer Ce type est Alloc::const_void_pointer s’il est correctement construit ; sinon, pointer_traits<pointer>::rebind<const void>.
difference_type Ce type est Alloc::difference_type s’il est correctement construit ; sinon, pointer_traits<pointer>::difference_type.
pointer Ce type est Alloc::pointer s’il est correctement construit ; sinon, value_type *.
propagate_on_container_copy_assignment Ce type est Alloc::propagate_on_container_copy_assignment s’il est correctement construit ; sinon, false_type.
propagate_on_container_move_assignment Ce type est Alloc::propagate_on_container_move_assignment s’il est correctement construit ; sinon, false_type. Si le type donne la valeur true, un conteneur compatible avec l’allocateur copie son allocateur stocké sur une assignation de déplacement.
propagate_on_container_swap Ce type est Alloc::propagate_on_container_swap s’il est correctement construit ; sinon, false_type. Si le type donne la valeur true, un conteneur compatible avec l’allocateur échange son allocateur stocké sur un échange.
size_type Ce type est Alloc::size_type s’il est correctement construit ; sinon, make_unsigned<difference_type>::type.
value_type Ce type est un synonyme de Alloc::value_type.
void_pointer Ce type est Alloc::void_pointer s’il est correctement construit ; sinon, pointer_traits<pointer>::rebind<void>.

Méthodes statiques

Les méthodes statiques suivantes appellent la méthode correspondante sur un paramètre d’allocateur donné.

Nom Description
allocate Méthode statique qui alloue de la mémoire en utilisant le paramètre d’allocateur donné.
construct Méthode statique qui utilise un allocateur spécifié pour construire un objet.
deallocate Méthode statique qui utilise un allocateur spécifié pour désallouer un nombre spécifié d’objets.
destroy Méthode statique qui utilise un allocateur spécifié pour appeler le destructeur sur un objet sans désallouer sa mémoire.
max_size Méthode statique qui utilise un allocateur spécifié pour déterminer le nombre maximal d’objets pouvant être alloués.
select_on_container_copy_construction Méthode statique qui appelle select_on_container_copy_construction sur l’allocateur spécifié.

allouer

Méthode statique qui alloue de la mémoire en utilisant le paramètre d’allocateur donné.

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

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

Paramètres

Al
Objet allocateur.

count
Nombre d’éléments à allouer.

indice
const_pointer pouvant aider l’objet allocateur à satisfaire la demande de stockage en recherchant l’adresse d’un objet alloué avant la demande. Un pointeur null est traité comme s’il n’y avait aucun argument hint.

Valeur de retour

Chaque méthode retourne un pointeur vers l’objet alloué.

La première méthode statique retourne al.allocate(count).

La seconde méthode retourne al.allocate(count, hint), si cette expression est correctement construite ; sinon, al.allocate(count).

construct

Méthode statique qui utilise un allocateur spécifié pour construire un objet.

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

Paramètres

Al
Objet allocateur.

ptr
Pointeur vers l’emplacement où l’objet doit être construit.

args
Liste d’arguments passée au constructeur d’objet.

Notes

La fonction membre statique appelle al.construct(ptr, args...), si cette expression est correctement construite ; sinon, elle retourne la valeur ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...).

deallocate

Méthode statique qui utilise un allocateur spécifié pour désallouer un nombre spécifié d’objets.

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

Paramètres

Al
Objet allocateur.

ptr
Pointeur vers l’emplacement de départ des objets à libérer.

count
Nombre d’objets à désallouer.

Notes

Cette méthode appelle al.deallocate(ptr, count).

Cette méthode ne lève aucune exception.

destroy

Méthode statique qui utilise un allocateur spécifié pour appeler le destructeur sur un objet sans désallouer sa mémoire.

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

Paramètres

Al
Objet allocateur.

ptr
Pointeur vers l’emplacement de l’objet.

Notes

Cette méthode appelle al.destroy(ptr), si cette expression est correctement construite ; sinon, elle retourne la valeur ptr->~Uty().

max_size

Méthode statique qui utilise un allocateur spécifié pour déterminer le nombre maximal d’objets pouvant être alloués.

static size_type max_size(const Alloc& al);

Paramètres

Al
Objet allocateur.

Notes

Cette méthode retourne al.max_size(), si cette expression est correctement construite ; sinon, numeric_limits<size_type>::max().

select_on_container_copy_construction

Méthode statique qui appelle select_on_container_copy_construction sur l’allocateur spécifié.

static Alloc select_on_container_copy_construction(const Alloc& al);

Paramètres

Al
Objet allocateur.

Valeur de retour

Cette méthode retourne al.select_on_container_copy_construction(), si ce type est bien formé ; sinon, il retourne al.

Notes

Cette méthode est utilisée pour spécifier un allocateur quand le conteneur associé est construit par copie.