Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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;