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.
O modelo de classe descreve um objeto que complementa um tipo de alocador. Um tipo de alocador é qualquer tipo que descreve um objeto alocador que é usado para gerenciar o armazenamento alocado. Especificamente, para qualquer tipo de alocador Alloc, você pode usar allocator_traits<Alloc> para determinar todas as informações necessárias para um contêiner habilitado para alocador. Para obter mais informações, consulte a Classe allocator padrão.
Sintaxe
template <class Alloc>
class allocator_traits;
Membros
Typedefs
| Nome | Descrição |
|---|---|
allocator_type |
Esse tipo é um sinônimo do parâmetro de modelo Alloc. |
const_pointer |
Esse tipo será Alloc::const_pointer, se aquele tipo for bem formado, caso contrário, será pointer_traits<pointer>::rebind<const value_type>. |
const_void_pointer |
Esse tipo será Alloc::const_void_pointer, se aquele tipo for bem formado, caso contrário, será pointer_traits<pointer>::rebind<const void>. |
difference_type |
Esse tipo será Alloc::difference_type, se aquele tipo for bem formado, caso contrário, será pointer_traits<pointer>::difference_type. |
pointer |
Esse tipo será Alloc::pointer, se aquele tipo for bem formado, caso contrário, será value_type *. |
propagate_on_container_copy_assignment |
Esse tipo será Alloc::propagate_on_container_copy_assignment, se aquele tipo for bem formado, caso contrário, será false_type. |
propagate_on_container_move_assignment |
Esse tipo será Alloc::propagate_on_container_move_assignment, se aquele tipo for bem formado, caso contrário, será false_type. Se o tipo for verdadeiro, um contêiner habilitado para alocador copiará seu alocador armazenado em uma atribuição de movimentação. |
propagate_on_container_swap |
Esse tipo será Alloc::propagate_on_container_swap, se aquele tipo for bem formado, caso contrário, será false_type. Se o tipo for verdadeiro, um contêiner habilitado para alocador trocará seu alocador armazenado em uma troca. |
size_type |
Esse tipo será Alloc::size_type, se aquele tipo for bem formado, caso contrário, será make_unsigned<difference_type>::type. |
value_type |
Esse tipo é um sinônimo de Alloc::value_type. |
void_pointer |
Esse tipo será Alloc::void_pointer, se aquele tipo for bem formado, caso contrário, será pointer_traits<pointer>::rebind<void>. |
Métodos estáticos
Os seguintes métodos estáticos chamam o método correspondente em um parâmetro alocador determinado.
| Nome | Descrição |
|---|---|
| allocate | Método estático que aloca memória usando o parâmetro alocador determinado. |
| construct | Método estático que usa um alocador especificado para construir um objeto. |
| deallocate | Método estático que usa um alocador especificado para desalocar um número especificado de objetos. |
| destroy | Método estático que usa um alocador especificado para chamar o destruidor em um objeto sem desalocar sua memória. |
| max_size | Método estático que usa um alocador especificado para determinar o número máximo de objetos que podem ser alocados. |
| select_on_container_copy_construction | Método estático que chama select_on_container_copy_construction no alocador especificado. |
allocate
Método estático que aloca memória usando o parâmetro alocador determinado.
static pointer allocate(Alloc& al, size_type count);
static pointer allocate(Alloc& al, size_type count,
typename allocator_traits<void>::const_pointer* hint);
Parâmetros
al
Um objeto alocador.
count
O número de elementos a serem alocados.
hint
Um const_pointer que pode ajudar o objeto alocador a atender à solicitação de armazenamento, localizando o endereço de um objeto alocado antes da solicitação. Um ponteiro nulo é tratado como nenhuma dica.
Valor de retorno
Cada método retorna um ponteiro para o objeto alocado.
O primeiro método estático retorna al.allocate(count).
O segundo método retornará al.allocate(count, hint), se essa expressão for bem formada, caso contrário, retornará al.allocate(count).
constructo
Método estático que usa um alocador especificado para construir um objeto.
template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);
Parâmetros
al
Um objeto alocador.
ptr
Um ponteiro para o local no qual o objeto deve ser construído.
args
Uma lista de argumentos que é passada ao construtor de objetos.
Comentários
A função de membro estática chamará al.construct(ptr, args...), se essa expressão for bem formada, caso contrário, será avaliada como ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...).
deallocate
Método estático que usa um alocador especificado para desalocar um número especificado de objetos.
static void deallocate(Alloc al,
pointer ptr,
size_type count);
Parâmetros
al
Um objeto alocador.
ptr
Um ponteiro para o local inicial dos objetos a serem desalocados.
count
O número de objetos a serem desalocados.
Comentários
Esse método chama al.deallocate(ptr, count).
Esse método não gera nada.
destroy
Método estático que usa um alocador especificado para chamar o destruidor em um objeto sem desalocar sua memória.
template <class Uty>
static void destroy(Alloc& al, Uty* ptr);
Parâmetros
al
Um objeto alocador.
ptr
Um ponteiro para o local do objeto.
Comentários
Esse método chamará al.destroy(ptr), se essa expressão for bem formada, caso contrário, será avaliado como ptr->~Uty().
max_size
Método estático que usa um alocador especificado para determinar o número máximo de objetos que podem ser alocados.
static size_type max_size(const Alloc& al);
Parâmetros
al
Um objeto alocador.
Comentários
Esse método retornará al.max_size(), se essa expressão for bem formada, caso contrário, retornará numeric_limits<size_type>::max().
select_on_container_copy_construction
Método estático que chama select_on_container_copy_construction no alocador especificado.
static Alloc select_on_container_copy_construction(const Alloc& al);
Parâmetros
al
Um objeto alocador.
Valor de retorno
Este método retorna al.select_on_container_copy_construction(), se aquele tipo for bem formado. Caso contrário, retornará al.
Comentários
Esse método é usado para especificar um alocador quando o contêiner associado é construído por cópia.