scoped_allocator_adaptor – třída
Představuje hnízdo allocators.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Poznámky
Šablony třídy zapouzdří hnízdo z jednoho nebo více allocators.Každá třída má vnější modulu přidělování typu outer_allocator_type, synonymum pro Outer, což je základ veřejné scoped_allocator_adaptor objektu.Outerslouží k přidělení paměti pro kontejner.Odkaz na tento objekt Alokátor základní lze získat voláním outer_allocator.
Zbytek přivítat je typu inner_allocator_type.Vnitřní přidělování lze přidělit paměť pro prvky v rámci kontejneru.Odkaz na uložený objekt tohoto typu lze získat voláním inner_allocator.Pokud Inner... není prázdný, inner_allocator_type typu scoped_allocator_adaptor<Inner...>, a inner_allocator je názvem členského objektu.Jinak inner_allocator_type typu scoped_allocator_adaptor<Outer>, a inner_allocator označí celý objekt.
Přivítat se chová, jako kdyby se libovolné hloubky, replikace jeho nejvnitřnější zapouzdřené přidělování podle potřeby.
Několik konceptů, které nejsou součástí rozhraní viditelné podpory při popisu chování této šablony třídy.Vnější přidělování zprostředkovává všechna volání konstrukci a zničit metody.Účinně je definován pomocí rekurzivní funkce OUTERMOST(X), kde OUTERMOST(X) je jedním z následujících způsobů.
If X.outer_allocator() is well formed, then OUTERMOST(X) is OUTERMOST(X.outer_allocator()).
Otherwise, OUTERMOST(X) is X.
Tři typy jsou definovány v zájmu budeme:
Typ |
Popis |
---|---|
Outermost |
Typ OUTERMOST(*this). |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
Konstruktory
Name |
Popis |
---|---|
scoped_allocator_adaptor::scoped_allocator_adaptor – konstruktor |
Sestavte objekt scoped_allocator_adaptor. |
Typedefs
Name |
Popis |
---|---|
const_pointer |
Tento typ je synonymum pro const_pointer je spojeno s Alokátor Outer. |
const_void_pointer |
Tento typ je synonymum pro const_void_pointer je spojeno s Alokátor Outer. |
difference_type |
Tento typ je synonymum pro difference_type je spojeno s Alokátor Outer. |
inner_allocator_type |
Tento typ je synonymum pro typ vnořené adaptér scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Tento typ je synonymum pro přidělování základní typ Outer. |
pointer |
Tento typ je synonymum pro pointer spojené pomocí přidělujícího modulu Outer. |
propagate_on_container_copy_assignment |
Typ obsahuje hodnotu true pouze v případě Outer_traits::propagate_on_container_copy_assignment platí a inner_allocator_type::propagate_on_container_copy_assignment platí. |
propagate_on_container_move_assignment |
Typ obsahuje hodnotu true pouze v případě Outer_traits::propagate_on_container_move_assignment platí a inner_allocator_type::propagate_on_container_move_assignment platí. |
propagate_on_container_swap |
Typ obsahuje hodnotu true pouze v případě Outer_traits::propagate_on_container_swap platí a inner_allocator_type::propagate_on_container_swap platí. |
size_type |
Tento typ je synonymum pro size_type spojené pomocí přidělujícího modulu Outer. |
value_type |
Tento typ je synonymum pro value_type spojené pomocí přidělujícího modulu Outer. |
void_pointer |
Tento typ je synonymum pro void_pointer spojené pomocí přidělujícího modulu Outer. |
Struktury
Name |
Popis |
---|---|
Definuje typ Outer::rebind<Other>::other jako synonymum pro scoped_allocator_adaptor<Other, Inner...>. |
Metody
Name |
Popis |
---|---|
Přidělí paměť pomocí Outer přidělování. |
|
Vytvoří objekt. |
|
Zruší přidělení objektů pomocí přidělujícího modulu vnější. |
|
Odstraní určený objekt. |
|
Získá referenci na uložené objekt typu inner_allocator_type. |
|
Určuje maximální počet objektů, které lze rozdělit podle vnější přidělování. |
|
Získá referenci na uložené objekt typu outer_allocator_type. |
|
scoped_allocator_adaptor::select_on_container_copy_construction – metoda |
Vytvoří nový scoped_allocator_adaptor k jednotlivým objektům uložené přidělování inicializována voláním objektu select_on_container_copy_construction pro každý odpovídající přidělování. |
Požadavky
Záhlaví:<scoped_allocator>
Obor názvů: std