Classe scoped_allocator_adaptor
Rappresenta un annidamento di allocatori.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Note
La classe incapsula un modello annidamento di uno o più allocatori.Ciascuna classe dispone di un allocatore più esterno di tipo outer_allocator_type, un sinonimo Outer, una base pubblica dell'oggetto scoped_allocator_adaptor.Outer viene utilizzato per allocare memoria da utilizzare da un contenitore.È possibile ottenere un riferimento a questo oggetto di base di un allocatore chiamando outer_allocator.
Il resto di annidamento di tipo inner_allocator_type.Un allocatore interno viene utilizzato per allocare memoria per gli elementi di un contenitore.È possibile ottenere un riferimento all'oggetto archiviato di questo tipo chiamando inner_allocator.Se Inner... non è vuoto, inner_allocator_type è di tipo scoped_allocator_adaptor<Inner...>e inner_allocator definisce un oggetto membro.In caso contrario, inner_allocator_type è di tipo scoped_allocator_adaptor<Outer>e inner_allocator definisce l'intero oggetto.
L'annidamento si comporta come se la profondità arbitraria, ripiegando il relativo allocatore incapsulato più interna in base alle necessità.
Numerosi concetti che non fanno parte di aiuto visibile dell'interfaccia nella descrizione del comportamento di questa classe modello.Un allocatore più esterno media tutte le chiamate al costrutto ed elimina i metodi.Viene efficacemente definito dalla funzione ricorsiva OUTERMOST(X), dove OUTERMOST(X) è uno dei seguenti.
Se X.outer_allocator() è ben formato, quindi OUTERMOST(X) è OUTERMOST(X.outer_allocator()).
In caso contrario, OUTERMOST(X) sarà X.
Tre tipi definiti per l'esposizione:
Type |
Descrizione |
---|---|
Outermost |
Tipo di OUTERMOST(*this). |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
Costruttori
Nome |
Descrizione |
---|---|
Costruttore scoped_allocator_adaptor::scoped_allocator_adaptor |
Costruisce un oggetto scoped_allocator_adaptor. |
Definizioni typedef
Nome |
Descrizione |
---|---|
const_pointer |
Questo tipo è sinonimo const_pointer associato all'allocatore Outer. |
const_void_pointer |
Questo tipo è sinonimo const_void_pointer associato all'allocatore Outer. |
difference_type |
Questo tipo è sinonimo difference_type associato all'allocatore Outer. |
inner_allocator_type |
Questo tipo è sinonimo del tipo dell'adattatore annidato scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Questo tipo è sinonimo del tipo di allocatore di base Outer. |
pointer |
Questo tipo è sinonimo pointer associato all'allocatore Outer. |
propagate_on_container_copy_assignment |
Il tipo poter contenere solo se Outer_traits::propagate_on_container_copy_assignment poter mantenute inner_allocator_type::propagate_on_container_copy_assignment o true. |
propagate_on_container_move_assignment |
Il tipo poter contenere solo se Outer_traits::propagate_on_container_move_assignment poter mantenute inner_allocator_type::propagate_on_container_move_assignment o true. |
propagate_on_container_swap |
Il tipo poter contenere solo se Outer_traits::propagate_on_container_swap poter mantenute inner_allocator_type::propagate_on_container_swap o true. |
size_type |
Questo tipo è sinonimo size_type associato all'allocatore Outer. |
value_type |
Questo tipo è sinonimo value_type associato all'allocatore Outer. |
void_pointer |
Questo tipo è sinonimo void_pointer associato all'allocatore Outer. |
Strutture
Nome |
Descrizione |
---|---|
Definisce il tipo Outer::rebind<Other>::other come un sinonimo scoped_allocator_adaptor<Other, Inner...>. |
Metodi
Nome |
Descrizione |
---|---|
Alloca memoria utilizzando l'allocatore Outer. |
|
Costruisce un oggetto. |
|
Rilascia oggetti utilizzando l'allocatore esterno. |
|
Elimina un oggetto specificato. |
|
Recupera un riferimento all'oggetto archiviato di tipo inner_allocator_type. |
|
Determina il numero massimo di oggetti che possono essere allocati da allocatore esterno. |
|
Recupera un riferimento all'oggetto archiviato di tipo outer_allocator_type. |
|
Metodo scoped_allocator_adaptor::select_on_container_copy_construction |
Crea un nuovo oggetto scoped_allocator_adaptor con ogni oggetto archiviato di allocatore inizializzato chiamando select_on_container_copy_construction per ogni allocatore corrispondente. |
Requisiti
intestazione: <scoped_allocator>
Spazio dei nomi: deviazione standard