scoped_allocator_adaptor-Klasse
Stellt ein Nest von Belegungsfunktionen dar.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Hinweise
Die Vorlagenklasse kapselt einen Nest einer oder mehrerer Belegungsfunktionen.Jede dieser Klasse hat eine äußerste Belegungsfunktion des Typs outer_allocator_type, ein Synonym für Outer, das eine öffentliche scoped_allocator_adaptor Basis des Objekts ist.Outer wird verwendet, um Speicher reserviert, durch einen Container verwendet werden.Sie erhalten ein Verweis auf dieses Belegungsfunktionsbasisobjekt, indem Sie outer_allocator aufrufen.
Der Rest des Nestes ist vom Typ inner_allocator_type.Eine innere Belegungsfunktion wird verwendet, um für Elemente innerhalb eines Containers Speicher reserviert.Sie erhalten einen Verweis auf das Objekt gespeicherten dieses Typs, indem Sie inner_allocator aufrufen.Wenn Inner... nicht leer ist, hat inner_allocator_type-Typ scoped_allocator_adaptor<Inner...>, und inner_allocator legt ein Memberobjekt fest.Andernfalls weist inner_allocator_type-Typ scoped_allocator_adaptor<Outer>, und inner_allocator legt das gesamte Objekt fest.
Das Nest verhält, als ob es beliebige Tiefe hat und ggf. repliziert die innerste gekapselte Belegungsfunktion verwendet.
Einige Konzepte, die nicht Teil der sichtbaren Schnittstellenhilfe sind, wenn sie das Verhalten dieser Vorlagenklasse beschreiben.Eine äußerste Belegungsfunktion übergibt alle Aufrufe an Konstrukt und zerstört Methoden.Es wird effektiv durch die rekursive Funktion OUTERMOST(X) definiert, in der OUTERMOST(X) einen der folgenden ist.
Wenn X.outer_allocator() wohl geformt ist, ist OUTERMOST(X)OUTERMOST(X.outer_allocator()).
Andernfalls ist OUTERMOST(X)X.
Drei Typen werden mit der Veröffentlichung willen definiert:
Text [Type] |
Description |
---|---|
Outermost |
Der Typ von OUTERMOST(*this). |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
Konstruktoren
Name |
Description |
---|---|
scoped_allocator_adaptor::scoped_allocator_adaptor-Konstruktor |
Erstellt ein scoped_allocator_adaptor-Objekt. |
Typedefs
Name |
Description |
---|---|
const_pointer |
Dieser Typ ist ein Synonym für const_pointer, das der Belegungsfunktion Outer zugeordnet ist. |
const_void_pointer |
Dieser Typ ist ein Synonym für const_void_pointer, das der Belegungsfunktion Outer zugeordnet ist. |
difference_type |
Dieser Typ ist ein Synonym für difference_type, das der Belegungsfunktion Outer zugeordnet ist. |
inner_allocator_type |
Dieser Typ ist ein Synonym für den Typ des geschachtelten Adapters scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Dieser Typ ist ein Synonym für den Typ der Basisklasse Belegungsfunktion Outer. |
pointer |
Dieser Typ ist ein Synonym für pointer, das der Belegungsfunktion Outer zugeordnet ist. |
propagate_on_container_copy_assignment |
Die Typgriffe werden nur bei Outer_traits::propagate_on_container_copy_assignment Grifftrue oder inner_allocator_type::propagate_on_container_copy_assignment Grifftrue aus. |
propagate_on_container_move_assignment |
Die Typgriffe werden nur bei Outer_traits::propagate_on_container_move_assignment Grifftrue oder inner_allocator_type::propagate_on_container_move_assignment Grifftrue aus. |
propagate_on_container_swap |
Die Typgriffe werden nur bei Outer_traits::propagate_on_container_swap Grifftrue oder inner_allocator_type::propagate_on_container_swap Grifftrue aus. |
size_type |
Dieser Typ ist ein Synonym für size_type, das der Belegungsfunktion Outer zugeordnet ist. |
value_type |
Dieser Typ ist ein Synonym für value_type, das der Belegungsfunktion Outer zugeordnet ist. |
void_pointer |
Dieser Typ ist ein Synonym für void_pointer, das der Belegungsfunktion Outer zugeordnet ist. |
Strukturen
Name |
Description |
---|---|
Definiert den Typ Outer::rebind<Other>::other als Synonym für scoped_allocator_adaptor<Other, Inner...>. |
Methoden
Name |
Description |
---|---|
Belegt mithilfe der Outer Belegungsfunktion Speicher. |
|
Erstellt ein Objekt. |
|
Gibt Objekte mithilfe der äußeren Belegungsfunktion frei. |
|
Zerstört ein angegebenes Objekt. |
|
Ruft einen Verweis auf das gespeicherten Objekt des Typs inner_allocator_type ab. |
|
Bestimmt die maximale Anzahl von Objekten, die von der äußeren Belegungsfunktion zugeordnet werden können. |
|
Ruft einen Verweis auf das gespeicherten Objekt des Typs outer_allocator_type ab. |
|
scoped_allocator_adaptor::select_on_container_copy_construction-Methode |
Erstellt ein neues Objekt scoped_allocator_adaptor mit jedem gespeicherten allocator-Objekt, das durch Aufrufen von select_on_container_copy_construction für jede entsprechende Belegungsfunktion initialisiert wird. |
Anforderungen
Header: <scoped_allocator>
Namespace: std