scoped_allocator_adaptor – třída
Představuje hnízdo allocators.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Poznámky
Šablona třídy zapouzdří hnízdo jeden nebo více allocators.Každá taková třída má nejvzdálenějších přidělování typu outer_allocator_type, synonymum pro Outer, která je základem veřejné scoped_allocator_adaptor objektu.Outerslouží k přidělení paměti pro použití v kontejneru.Odkaz na tento objekt základní přidělování můžete získat voláním outer_allocator.
Zbytek hnízdo má typ inner_allocator_type.Vnitřní přidělování slouží k přidělení paměti pro prvky v rámci kontejneru.Odkaz na objekt uložené 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 označí členský objekt.Jinak inner_allocator_type typu scoped_allocator_adaptor<Outer>, a inner_allocator označí celý objekt.
Hnízdo chová jako má libovolného hloubku, replikace jeho vnitřní zapouzdřené přidělování podle potřeby.
Několik pojmy, které nejsou součástí rozhraní viditelné podpory v popisující chování této šablony třídy.Nejvzdálenějších přidělování zprostředkovává všechna volání konstrukci a metody zničit.Je definován účinně rekurzivní funkce OUTERMOST(X), kde OUTERMOST(X) je jedním z následujících.
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 z budeme:
Type |
Description |
---|---|
Outermost |
Typ OUTERMOST(*this). |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
Konstruktory
Název |
Description |
---|---|
scoped_allocator_adaptor::scoped_allocator_adaptor – konstruktor |
Konstrukce scoped_allocator_adaptor objektu. |
Funkce TypeDef
Název |
Description |
---|---|
const_pointer |
Tento typ je synonymum pro const_pointer je spojeno s Alokátor se Outer. |
const_void_pointer |
Tento typ je synonymum pro const_void_pointer je spojeno s Alokátor se Outer. |
difference_type |
Tento typ je synonymum pro difference_type je spojeno s Alokátor se Outer. |
inner_allocator_type |
Tento typ je synonymum pro typ adaptéru vnořené scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Tento typ je synonymum pro typ základní přidělování Outer. |
pointer |
Tento typ je synonymum pro pointer přidružené Alokátor se Outer. |
propagate_on_container_copy_assignment |
Typ obsahuje hodnotu true pouze v případě Outer_traits::propagate_on_container_copy_assignment platí nebo 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í nebo 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í nebo inner_allocator_type::propagate_on_container_swap platí. |
size_type |
Tento typ je synonymum pro size_type přidružené Alokátor se Outer. |
value_type |
Tento typ je synonymum pro value_type přidružené Alokátor se Outer. |
void_pointer |
Tento typ je synonymum pro void_pointer přidružené Alokátor se Outer. |
Struktur
Název |
Description |
---|---|
Definuje typ Outer::rebind<Other>::other jako synonymum pro scoped_allocator_adaptor<Other, Inner...>. |
Metody
Název |
Description |
---|---|
Přidělí paměť pomocí Outer přidělování. |
|
Vytvoří objekt. |
|
Zruší přidělení objektů pomocí přidělujícího 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šího 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 se každý objekt 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