Compartilhar via


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

Struct scoped_allocator_adaptor::rebind

Define o tipo Outer::rebind<Other>::other como um sinônimo para scoped_allocator_adaptor<Other, Inner...>.

Métodos

Nome

Descrição

Método scoped_allocator_adaptor::allocate

Aloca memória usando o alocador de Outer .

Método scoped_allocator_adaptor::construct

Constrói um objeto.

Método scoped_allocator_adaptor::deallocate

Desaloca objetos usando o alocador externa.

Método scoped_allocator_adaptor::destroy

Destrói um objeto especificado.

Método scoped_allocator_adaptor::inner_allocator

Recupera uma referência ao objeto armazenado do tipo inner_allocator_type.

Método scoped_allocator_adaptor::max_size

Determina o número máximo de objetos que podem ser atribuídos pelo alocador externa.

Método scoped_allocator_adaptor::outer_allocator

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

Consulte também

Outros recursos

Arquivos de cabeçalho da Biblioteca Padrão C++