Compartilhar via


Classe allocator_base

Define a classe base e as funções comuns necessárias para criar um alocador definido pelo usuário de um filtro de sincronização.

Sintaxe

template <class Type, class Sync>
class allocator_base

Parâmetros

Tipo
O tipo dos elementos alocados pelo alocador.

Sincronizar
A política de sincronização do alocador, que é Classe sync_none, Classe sync_per_container, Classe sync_per_thread ou Classe sync_shared.

Construtores

Construtor Descrição
allocator_base Constrói um objeto do tipo allocator_base.

Typedefs

Nome do tipo Descrição
const_pointer Um tipo que fornece um ponteiro constante para o tipo de objeto gerenciado pelo alocador.
const_reference Um tipo que fornece uma referência constante ao tipo de objeto gerenciado pelo alocador.
difference_type Um tipo integral com sinal que pode representar a diferença entre os valores de ponteiros para o tipo de objeto gerenciado pelo alocador.
pointer Um tipo que fornece um ponteiro para o tipo de objeto gerenciado pelo alocador.
referência Um tipo que fornece uma referência ao tipo de objeto gerenciado pelo alocador.
size_type Um tipo integral sem sinal que pode representar o comprimento de qualquer sequência que um objeto do tipo allocator_base possa alocar.
value_type Um tipo que é gerenciado pelo alocador.

Funções de membro

Função de membro Descrição
_Charalloc Aloca armazenamento para uma matriz do tipos char.
_Chardealloc Libera armazenamento para a matriz que contém os elementos do tipo char.
address Localiza o endereço de um objeto cujo valor é especificado.
allocate Aloca um bloco de memória grande o suficiente para armazenar pelo menos um número especificado de elementos.
construct Constrói um tipo específico de objeto em um endereço especificado que é inicializado com um valor especificado.
deallocate Libera um número especificado de objetos do armazenamento começando em uma posição especificada.
destroy Chama um destruidor de objetos sem desalocar a memória na qual o objeto foi armazenado.
max_size Retorna o número de elementos do tipo Type que podem ser alocados por um objeto da classe allocator antes que a memória livre seja totalmente usada.

Requisitos

Cabeçalho:<allocators>

Namespace: stdext

allocator_base::_Charalloc

Aloca armazenamento para uma matriz do tipos char.

char *_Charalloc(size_type count);

Parâmetros

count
O número de elementos na matriz a serem alocados.

Valor de retorno

Um ponteiro para o objeto alocado.

Comentários

Essa função membro é usada pelos contêineres quando são compilados com um compilador que não pode compilar a reassociação. Ela implementa _Charalloc para o alocador definido pelo usuário, retornando o resultado de uma chamada para a função allocate do filtro de sincronização.

allocator_base::_Chardealloc

Libera armazenamento para a matriz que contém os elementos do tipo char.

void _Chardealloc(void* ptr, size_type count);

Parâmetros

ptr
Um ponteiro para o primeiro objeto a ser desalocado do armazenamento.

count
O número de objetos a serem desalocados do armazenamento.

Comentários

Essa função membro é usada pelos contêineres quando são compilados com um compilador que não pode compilar a reassociação. Ela implementa _Chardealloc para o alocador definido pelo usuário ao chamar a função deallocate do filtro de sincronização. O ponteiro PTR deve ter sido retornado anteriormente por uma chamada para _Charalloc de um objeto alocador que compara como igual a *this, alocando um objeto de matriz dos mesmos tipo e tamanho. _Chardealloc nunca gera uma exceção.

allocator_base::endereço

Localiza o endereço de um objeto cujo valor é especificado.

pointer address(reference val);

const_pointer address(const_reference val);

Parâmetros

val
O valor const ou não const do objeto cujo endereço está sendo pesquisado.

Valor de retorno

Um ponteiro const ou não const para o objeto localizado, de valor const ou não const, respectivamente.

Comentários

Essa função de membro é implementada para o alocador definido pelo usuário, retornando &val.

allocator_base::alocar

Aloca um bloco de memória grande o suficiente para armazenar pelo menos um número especificado de elementos.

template <class Other>
pointer allocate(size_type _Nx, const Other* _Hint = 0);

pointer allocate(size_type _Nx);

Parâmetros

_Nx
O número de elementos na matriz a serem alocados.

_Hint
Este parâmetro é ignorado.

Valor de retorno

Um ponteiro para o objeto alocado.

Comentários

A função de membro implementa a alocação de memória para o alocador definido pelo usuário, retornando o resultado de uma chamada para a função allocate do filtro de sincronização do tipo Type * se _Nx == 1, caso contrário, retornando o resultado de uma chamada para operator new(_Nx * sizeof(Type)) transmitido para o tipo Type *.

allocator_base::allocator_base

Constrói um objeto do tipo allocator_base.

allocator_base();

template <class Other>
allocator_base(const allocator_base<Other, Sync>& right);

Parâmetros

direita
O objeto alocador a ser copiado.

Comentários

O primeiro construtor constrói uma instância de allocator_base. O segundo construtor constrói uma instância allocator_base de modo que, para qualquer instância de allocator_base<Type, _Sync>a, allocator_base<Type, Sync>(allocator_base<Other, Sync>(a)) == a.

allocator_base::const_pointer

Um tipo que fornece um ponteiro constante para o tipo de objeto gerenciado pelo alocador.

typedef const Type *const_pointer;

allocator_base::const_reference

Um tipo que fornece uma referência constante ao tipo de objeto gerenciado pelo alocador.

typedef const Type& const_reference;

allocator_base::construir

Constrói um tipo específico de objeto em um endereço especificado que é inicializado com um valor especificado.

void construct(pointer ptr, const Type& val);

Parâmetros

ptr
Um ponteiro para o local no qual o objeto deve ser construído.

val
O valor com o qual o objeto que está sendo construído deve ser inicializado.

Comentários

Essa função de membro é implementada para o alocador definido pelo usuário ao chamar new((void*)ptr Type(val).

allocator_base::d eallocate

Libera um número especificado de objetos do armazenamento começando em uma posição especificada.

void deallocate(pointer ptr, size_type _Nx);

Parâmetros

ptr
Um ponteiro para o primeiro objeto a ser desalocado do armazenamento.

_Nx
O número de objetos a serem desalocados do armazenamento.

Comentários

Essa função de membro é implementada para o alocador definido pelo usuário chamando deallocate(ptr) no filtro de sincronização Sync se _Nx == 1, caso contrário, chamando operator delete(_Nx * ptr).

allocator_base::d estroy

Chama um destruidor de objetos sem desalocar a memória na qual o objeto foi armazenado.

void destroy(pointer ptr);

Parâmetros

ptr
Um ponteiro que designa o endereço do objeto a ser destruído.

Comentários

Essa função de membro é implementada para o alocador definido pelo usuário ao chamar ptr->~Type().

allocator_base::d tipo_de_diferenciação

Um tipo integral com sinal que pode representar a diferença entre os valores de ponteiros para o tipo de objeto gerenciado pelo alocador.

typedef std::ptrdiff_t difference_type;

allocator_base::max_size

Retorna o número de elementos do tipo Type que podem ser alocados por um objeto da classe allocator antes que a memória livre seja totalmente usada.

size_type max_size() const;

Valor de retorno

O número de elementos que podem ser alocados.

Comentários

Essa função de membro é implementada para o alocador definido pelo usuário, retornando (size_t)-1 / sizeof(Type) se 0 < (size_t)-1 / sizeof(Type), caso contrário, 1.

allocator_base::p ointer

Um tipo que fornece um ponteiro para o tipo de objeto gerenciado pelo alocador.

typedef Type *pointer;

allocator_base::referência

Um tipo que fornece uma referência ao tipo de objeto gerenciado pelo alocador.

typedef Type& reference;

allocator_base::size_type

Um tipo integral sem sinal que pode representar o comprimento de qualquer sequência que um objeto do tipo allocator_base possa alocar.

typedef std::size_t size_type;

allocator_base::value_type

Um tipo que é gerenciado pelo alocador.

typedef Type value_type;

Confira também

<allocators>