Classe scoped_allocator_adaptor
Representa um dos distribuidores a aninhada.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Comentários
A classe encapsula um modelo da aninhada de um ou mais distribuidores.Cada tal classe tem um distribuidor mais externo de tipo outer_allocator_type, um sinónimo para Outer, que é uma base pública do objeto de scoped_allocator_adaptor .Outer é usado para atribuir a memória ser usado por um recipiente.Você pode obter uma referência a esse objeto base do distribuidor chamando outer_allocator.
O restante da aninhada tem o tipo inner_allocator_type.Um distribuidor interno é usado para alocar memória para os elementos dentro de um recipiente.Você pode obter uma referência ao objeto armazenado chamando inner_allocatorde esse tipo.Se Inner... não estiver vazia, inner_allocator_type tem o tipo scoped_allocator_adaptor<Inner...>, e inner_allocator designa um objeto de membro.Caso contrário, inner_allocator_type tem o tipo scoped_allocator_adaptor<Outer>, e inner_allocator designa o objeto inteiro.
O a aninhada se comporta como se ele tem a profundidade arbitrária, replicando o distribuidor encapsulado interno quando necessário.
Vários conceitos que não são uma parte visível de auxílio de interface em descrever o comportamento da classe de modelo.Um distribuidor mais externo negocia todas as chamadas a compilação e destrói métodos.Efetivamente é definida pela função recursiva OUTERMOST(X), onde é um OUTERMOST(X) a seguir.
Se X.outer_allocator() é bem formado, então OUTERMOST(X) é OUTERMOST(X.outer_allocator()).
Caso contrário, OUTERMOST(X) é X.
Três tipos são definidos para a exposição:
Tipo |
Descrição |
---|---|
Outermost |
O tipo de OUTERMOST(*this). |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
Construtores
Nome |
Descrição |
---|---|
Construtor scoped_allocator_adaptor::scoped_allocator_adaptor |
Constrói um objeto de scoped_allocator_adaptor . |
Typedefs
Nome |
Descrição |
---|---|
const_pointer |
Este é um tipo sinónimo para const_pointer que está associado com o distribuidor Outer. |
const_void_pointer |
Este é um tipo sinónimo para const_void_pointer que está associado com o distribuidor Outer. |
difference_type |
Este é um tipo sinónimo para difference_type que está associado com o distribuidor Outer. |
inner_allocator_type |
Este é um tipo sinónimo para o tipo do adaptador aninhado scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Este é um tipo sinónimo para o tipo do distribuidor base Outer. |
pointer |
Este é um tipo sinónimo para pointer associado com o distribuidor Outer. |
propagate_on_container_copy_assignment |
O tipo contém somente se verdadeiro Outer_traits::propagate_on_container_copy_assignment contém as verdadeiras contém ou de inner_allocator_type::propagate_on_container_copy_assignment verdadeiras. |
propagate_on_container_move_assignment |
O tipo contém somente se verdadeiro Outer_traits::propagate_on_container_move_assignment contém as verdadeiras contém ou de inner_allocator_type::propagate_on_container_move_assignment verdadeiras. |
propagate_on_container_swap |
O tipo contém somente se verdadeiro Outer_traits::propagate_on_container_swap contém as verdadeiras contém ou de inner_allocator_type::propagate_on_container_swap verdadeiras. |
size_type |
Este é um tipo sinónimo para size_type associado com o distribuidor Outer. |
value_type |
Este é um tipo sinónimo para value_type associado com o distribuidor Outer. |
void_pointer |
Este é um tipo sinónimo para void_pointer associado com o distribuidor Outer. |
Estruturas
Nome |
Descrição |
---|---|
Define o tipo Outer::rebind<Other>::other como um sinónimo para scoped_allocator_adaptor<Other, Inner...>. |
Métodos
Nome |
Descrição |
---|---|
Aloca memória usando o distribuidor de Outer . |
|
Constrói um objeto. |
|
Desaloca objetos usando o distribuidor externo. |
|
For um objeto especificado. |
|
Recupera uma referência ao objeto do tipo inner_allocator_typearmazenado. |
|
Determina o número máximo de objetos que podem ser atribuídos pelo distribuidor externo. |
|
Recupera uma referência ao objeto do tipo outer_allocator_typearmazenado. |
|
Método scoped_allocator_adaptor::select_on_container_copy_construction |
Cria um novo objeto de scoped_allocator_adaptor com cada objeto armazenado do distribuidor inicializado select_on_container_copy_construction chamando para cada distribuidor correspondente. |
Requisitos
Cabeçalho: <scoped_allocator>
namespace: STD