Partager via


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

scoped_allocator_adaptor::rebind, struct

Définit le type Outer::rebind<Other>::other comme synonyme de scoped_allocator_adaptor<Other, Inner...>.

Méthodes

Nom

Description

scoped_allocator_adaptor::allocate, méthode

Alloue la mémoire à l'aide de l'allocateur d'Outer.

scoped_allocator_adaptor::construct, méthode

Construit un objet .

scoped_allocator_adaptor::deallocate, méthode

Libère des objets à l'aide de l'allocateur externe.

scoped_allocator_adaptor::destroy, méthode

Détruit un objet spécifié.

scoped_allocator_adaptor::inner_allocator, méthode

Récupère une référence à l'objet stocké de type inner_allocator_type.

scoped_allocator_adaptor::max_size, méthode

Détermine le nombre maximal d'objets qui peuvent être alloués par l'allocateur externe.

scoped_allocator_adaptor::outer_allocator, méthode

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

Voir aussi

Autres ressources

Fichiers d'en-tête de bibliothèque standard C++