std:: allocator_traits
|
Défini dans l'en-tête
<memory>
|
||
|
template
<
class
Alloc
>
struct allocator_traits ; |
(depuis C++11) | |
La classe template
allocator_traits
fournit le moyen standardisé d'accéder aux différentes propriétés des
Allocator
s
. Les conteneurs standards et autres composants de la bibliothèque standard accèdent aux allocateurs via ce template.
|
Il est possible d'utiliser n'importe quel type de classe comme allocateur, tant que la spécialisation fournie par l'utilisateur de
|
(until C++23) |
|
Un programme qui déclare une spécialisation explicite ou partielle de
|
(since C++23) |
Le défaut, non spécialisé,
std::allocator_traits
contient les membres suivants :
Table des matières |
Types membres
| Type | Définition |
allocator_type
|
Alloc
|
value_type
|
Alloc::value_type
|
pointer
|
Alloc::pointer
si présent, sinon
value_type*
|
const_pointer
|
Alloc::const_pointer
si présent, sinon
std::
pointer_traits
<
pointer
>
::
rebind
<
const
value_type
>
|
void_pointer
|
Alloc::void_pointer
si présent, sinon
std::
pointer_traits
<
pointer
>
::
rebind
<
void
>
|
const_void_pointer
|
Alloc::const_void_pointer
si présent, sinon
std::
pointer_traits
<
pointer
>
::
rebind
<
const
void
>
|
difference_type
|
Alloc::difference_type
si présent, sinon
std::
pointer_traits
<
pointer
>
::
difference_type
|
size_type
|
Alloc::size_type
si présent, sinon
std::
make_unsigned
<
difference_type
>
::
type
|
propagate_on_container_copy_assignment
|
Alloc::propagate_on_container_copy_assignment
si présent, sinon
std::false_type
|
propagate_on_container_move_assignment
|
Alloc::propagate_on_container_move_assignment
si présent, sinon
std::false_type
|
propagate_on_container_swap
|
Alloc::propagate_on_container_swap
si présent, sinon
std::false_type
|
is_always_equal
|
Alloc::is_always_equal
si présent, sinon
std::
is_empty
<
Alloc
>
::
type
|
Modèles d'alias de membre
| Type | Définition |
rebind_alloc<T>
|
Alloc::rebind<T>::other
si présent, sinon
SomeAllocator<T, Args>
si cet
Alloc
est de la forme
SomeAllocator
<
U, Args
>
, où
Args
est zéro ou plusieurs
arguments de type
|
rebind_traits<T>
|
std :: allocator_traits < rebind_alloc < T >> |
Fonctions membres
|
[static]
|
alloue de la mémoire non initialisée en utilisant l'allocateur
(fonction membre statique publique) |
|
[static]
(C++23)
|
alloue une mémoire d'au moins la taille demandée via un allocateur
(fonction membre statique publique) |
|
[static]
|
libère la mémoire en utilisant l'allocateur
(fonction membre statique publique) |
|
[static]
|
construit un objet dans la mémoire allouée
(modèle de fonction) |
|
[static]
|
détruit un objet stocké dans la mémoire allouée
(modèle de fonction) |
|
[static]
|
retourne la taille maximale d'objet supportée par l'allocateur
(fonction membre statique publique) |
|
obtient l'allocateur à utiliser après la copie d'un conteneur standard
(fonction membre statique publique) |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | S'applique à | Comportement tel que publié | Comportement corrigé |
|---|---|---|---|
| LWG 2108 | C++11 | il n'existait aucun moyen de montrer qu'un allocateur est sans état |
is_always_equal
fourni
|
Voir aussi
|
(C++11)
|
conteneur utilisant un allocateur ; utilisation des traits associés (par ex.
propagate_on_container_swap
)
(exigence nommée) |
|
l'allocateur par défaut
(modèle de classe) |
|
|
(C++11)
|
implémente un allocateur multi-niveaux pour les conteneurs multi-niveaux
(modèle de classe) |
|
(C++11)
|
fournit des informations sur les types de type pointeur
(modèle de classe) |