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.