scoped_allocator_adaptor::construct, méthode
Représente un emboîtement d' allocateurs.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Notes
Le modèle de classe contient un emboîtement d'un ou plusieurs allocateurs. Une telle classe possède un allocateur extérieur de type outer_allocator_type, un synonyme pour Outer, qui est une base publique de l'objet d' scoped_allocator_adaptor. Outer est utilisée pour allouer de la mémoire à utiliser par un conteneur. Vous pouvez obtenir une référence à cet objet de base d'allocateur en appelant outer_allocator.
Le reste de l'emboîtement est de type inner_allocator_type. Un allocateur interne est utilisé pour allouer de la mémoire pour les éléments dans un conteneur. Vous pouvez obtenir une référence à l'objet stockée de ce type en appelant inner_allocator. Si Inner... n'est pas vide, inner_allocator_type est de type scoped_allocator_adaptor<Inner...>, et inner_allocator indique un objet membre. Sinon, inner_allocator_type est de type scoped_allocator_adaptor<Outer>, et inner_allocator désigne l'objet entier.
L'emboîtement se comporte comme s'il avait une profondeur arbitraire, répliquant son allocateur encapsulé le plus profond si nécessaire.
Plusieurs concepts qui ne font pas partie de l'interface visible aident à décrire le comportement de ce modèle de classe. Un allocateur extérieur gère tous les appels aux méthodes de construction et de destruction. Il est efficacement défini par la fonction récursive OUTERMOST(X) où OUTERMOST(X) est l'une des valeurs suivantes.
Si X.outer_allocator() a une forme correcte, alors OUTERMOST(X) si OUTERMOST(X.outer_allocator()).
Sinon, OUTERMOST(X) est X.
Trois types sont définis par souci d'affichage :
Type |
Description |
---|---|
Outermost |
Type de OUTERMOST(*this). |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
Constructeurs
Nom |
Description |
---|---|
scoped_allocator_adaptor::scoped_allocator_adaptor, constructeur |
Construit un objet scoped_allocator_adaptor. |
Typedef
Nom |
Description |
---|---|
const_pointer |
Ce type est un synonyme de const_pointer associé à l'allocateur Outer. |
const_void_pointer |
Ce type est un synonyme de const_void_pointer associé à l'allocateur Outer. |
difference_type |
Ce type est un synonyme de difference_type associé à l'allocateur Outer. |
inner_allocator_type |
Ce type est un synonyme de type de l'adaptateur imbriqué scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Ce type est un synonyme de type de l'allocateur de base Outer. |
pointer |
Ce type est un synonyme de pointer associé à l'allocateur Outer. |
propagate_on_container_copy_assignment |
Le type reste vrai uniquement si Outer_traits::propagate_on_container_copy_assignment reste vrai ou d'inner_allocator_type::propagate_on_container_copy_assignment reste vrai. |
propagate_on_container_move_assignment |
Le type reste vrai uniquement si Outer_traits::propagate_on_container_move_assignment reste vrai ou d'inner_allocator_type::propagate_on_container_move_assignment reste vrai |
propagate_on_container_swap |
Le type reste vrai uniquement si Outer_traits::propagate_on_container_swap reste vrai ou d'inner_allocator_type::propagate_on_container_swap reste vrai. |
size_type |
Ce type est un synonyme de size_type associé à l'allocateur Outer. |
value_type |
Ce type est un synonyme de value_type associé à l'allocateur Outer. |
void_pointer |
Ce type est un synonyme de void_pointer associé à l'allocateur Outer. |
Structures
Nom |
Description |
---|---|
Définit le type Outer::rebind<Other>::other comme synonyme de scoped_allocator_adaptor<Other, Inner...>. |
Méthodes
Nom |
Description |
---|---|
Alloue la mémoire à l'aide de l'allocateur d'Outer. |
|
Construit un objet . |
|
Libère des objets à l'aide de l'allocateur externe. |
|
Détruit un objet spécifié. |
|
Récupère une référence à l'objet stocké de type inner_allocator_type. |
|
Détermine le nombre maximal d'objets qui peuvent être alloués par l'allocateur externe. |
|
Récupère une référence à l'objet stocké de type outer_allocator_type. |
|
scoped_allocator_adaptor::select_on_container_copy_construction, méthode |
Crée un nouvel objet d'scoped_allocator_adaptor avec chaque allocateur stocké initialisé en appelant select_on_container_copy_construction pour chaque allocateur correspondant. |
Configuration requise
En-tête: <scoped_allocator>
Espace de noms : std