Classe scoped_allocator_adaptor
Rappresenta un annidamento di allocatori.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Note
La classe modello include un annidamento di uno o più allocatori. Ciascuna classe dispone di un allocatore più esterno di tipo outer_allocator_type, un sinonimo di Outer, una base pubblica dell'oggetto di 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 dell'annidamento di tipo inner_allocator_type. Un allocatore interno viene utilizzato per allocare memoria per gli elementi all'interno 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 si profondità arbitraria, ripiegando il relativo allocatore incapsulato più interno in base alle necessità.
Numerosi concetti che non fanno parte dell'assistente 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 valori.
Se X.outer_allocator() è ben formato, quindi OUTERMOST(X) è OUTERMOST(X.outer_allocator()).
In caso contrario, OUTERMOST(X) sarà X.
Tre tipi vengono 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 di const_pointer associato all'allocatore Outer. |
const_void_pointer |
Questo tipo è sinonimo di const_void_pointer associato all'allocatore Outer. |
difference_type |
Questo tipo è sinonimo di 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 di pointer associato all'allocatore Outer. |
propagate_on_container_copy_assignment |
Il tipo vale solo se Outer_traits::propagate_on_container_copy_assignment sostiene mantenute di inner_allocator_type::propagate_on_container_copy_assignment o true. |
propagate_on_container_move_assignment |
Il tipo vale solo se Outer_traits::propagate_on_container_move_assignment sostiene mantenute di inner_allocator_type::propagate_on_container_move_assignment o true. |
propagate_on_container_swap |
Il tipo vale solo se Outer_traits::propagate_on_container_swap sostiene mantenute di inner_allocator_type::propagate_on_container_swap o true. |
size_type |
Questo tipo è sinonimo di size_type associato all'allocatore Outer. |
value_type |
Questo tipo è sinonimo di value_type associato all'allocatore Outer. |
void_pointer |
Questo tipo è sinonimo di void_pointer associato all'allocatore Outer. |
Strutture
Nome |
Descrizione |
---|---|
Definisce il tipo Outer::rebind<Other>::other come un sinonimo di scoped_allocator_adaptor<Other, Inner...>. |
Metodi
Nome |
Descrizione |
---|---|
Alloca memoria utilizzando l'allocatore di 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 di scoped_allocator_adaptor con ogni oggetto archiviato di allocatore inizializzato chiamando select_on_container_copy_construction per ogni allocatore corrispondente. |
Requisiti
scoped_allocator <diIntestazione: >
Spazio dei nomi: std