Classe scoped_allocator_adaptor
Representa um aninhamento de alocadores.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Comentários
A classe do modelo encapsula um aninhamento de um ou mais alocadores. Cada uma dessas classe tiver um alocador externo do tipo outer_allocator_type, um sinônimo para Outer, que é uma base pública do objeto de scoped_allocator_adaptor . Outer é usado para alocar memória a ser usada por um contêiner. Você pode obter uma referência a esse objeto base do alocador chamando outer_allocator.
O restante de aninhamento tem o tipo inner_allocator_type. Um alocador interno é usado para alocar memória para elementos dentro de um contêiner. Você pode obter uma referência ao objeto armazenado desse tipo chamando inner_allocator. Se Inner... não estiver vazia, inner_allocator_type tem o tipo scoped_allocator_adaptor<Inner...>, e inner_allocator designa um objeto do membro. Caso contrário, inner_allocator_type tem o tipo scoped_allocator_adaptor<Outer>, e inner_allocator designa o objeto inteiro.
O aninhamento se comportará como se tivesse a profundidade arbitrária replicando, o alocador encapsulado interno quando necessário.
Vários conceitos que não é uma parte de auxílio da interface visível ao descrever o comportamento dessa classe do modelo. Um alocador externo negocia todas as chamadas para a construção e destrói métodos. É definida com eficiência pela função recursiva OUTERMOST(X), onde é OUTERMOST(X) um destes valores.
Se X.outer_allocator() está 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 scoped_allocator_adaptor. |
Typedefs
Nome |
Descrição |
---|---|
const_pointer |
Esse é um sinônimo para const_pointer associado ao alocador Outer. |
const_void_pointer |
Esse é um sinônimo para const_void_pointer associado ao alocador Outer. |
difference_type |
Esse é um sinônimo para difference_type associado ao alocador Outer. |
inner_allocator_type |
Esse é um sinônimo para o tipo do adaptador aninhado scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Esse é um sinônimo para o tipo do alocador de base Outer. |
pointer |
Esse é um sinônimo para pointer associado ao alocador Outer. |
propagate_on_container_copy_assignment |
O tipo se aplica apenas se Outer_traits::propagate_on_container_copy_assignment contém as propriedades verdadeiro ou de inner_allocator_type::propagate_on_container_copy_assignment verdadeiras. |
propagate_on_container_move_assignment |
O tipo se aplica apenas se Outer_traits::propagate_on_container_move_assignment contém as propriedades verdadeiro ou de inner_allocator_type::propagate_on_container_move_assignment verdadeiras. |
propagate_on_container_swap |
O tipo se aplica apenas se Outer_traits::propagate_on_container_swap contém as propriedades verdadeiro ou de inner_allocator_type::propagate_on_container_swap verdadeiras. |
size_type |
Esse é um sinônimo para size_type associado ao alocador Outer. |
value_type |
Esse é um sinônimo para value_type associado ao alocador Outer. |
void_pointer |
Esse é um sinônimo para void_pointer associado ao alocador Outer. |
Structs
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 alocador de Outer . |
|
Constrói um objeto. |
|
Desaloca objetos usando o alocador externa. |
|
Destrói um objeto especificado. |
|
Recupera uma referência ao objeto armazenado do tipo inner_allocator_type. |
|
Determina o número máximo de objetos que podem ser atribuídos pelo alocador externa. |
|
Recupera uma referência ao objeto armazenado do tipo outer_allocator_type. |
|
Método scoped_allocator_adaptor::select_on_container_copy_construction |
Cria um novo objeto a partir de scoped_allocator_adaptor com cada objeto armazenado do alocador inicializado chamando select_on_container_copy_construction para cada alocador correspondente. |
Requisitos
scoped_allocator <deCabeçalho: >
Namespace: std