Se recomienda usar Visual Studio 2017

allocator_traits (clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

La clase de plantilla describe un objeto que complementa una tipo de asignador. Un tipo de asignador es cualquier tipo que describe un objeto de asignador que se usa para administrar el almacenamiento asignado. Concretamente, para cualquier tipo de asignador Alloc, puede utilizar allocator_traits<Alloc> para determinar toda la información que se necesita un contenedor habilitado como asignador. Para obtener más información, consulte el valor predeterminado asignador clase.

template <class Alloc>
class allocator_traits;

Definiciones de tipo

NameDescripción
allocator_traits::allocator_typeEste tipo es un sinónimo del parámetro de plantilla Alloc.
allocator_traits::const_pointerEste tipo es Alloc::const_pointer, en caso que el tipo es correcto; en caso contrario, este tipo es pointer_traits<pointer>::rebind<const value_type>.
allocator_traits::const_void_pointerEste tipo es Alloc::const_void_pointer, en caso que el tipo es correcto; en caso contrario, este tipo es pointer_traits<pointer>::rebind<const void>.
allocator_traits::difference_typeEste tipo es Alloc::difference_type, en caso que el tipo es correcto; en caso contrario, este tipo es pointer_traits<pointer>::difference_type.
allocator_traits::pointerEste tipo es Alloc::pointer, en caso que el tipo es correcto; en caso contrario, este tipo es value_type *.
allocator_traits::propagate_on_container_copy_assignmentEste tipo es Alloc::propagate_on_container_copy_assignment, en caso que el tipo es correcto; en caso contrario, este tipo es false_type.
allocator_traits::propagate_on_container_move_assignmentEste tipo es Alloc::propagate_on_container_move_assignment, en caso que el tipo es correcto; en caso contrario, este tipo es false_type. Si el tipo es verdadero, un contenedor habilitado como asignador copia su asignador almacenado en una asignación de movimiento.
allocator_traits::propagate_on_container_swapEste tipo es Alloc::propagate_on_container_swap, en caso que el tipo es correcto; en caso contrario, este tipo es false_type. Si el tipo es verdadero, un contenedor habilitado como asignador intercambia su asignador almacenado en un intercambio.
allocator_traits::size_typeEste tipo es Alloc::size_type, en caso que el tipo es correcto; en caso contrario, este tipo es make_unsigned<difference_type>::type.
allocator_traits::value_typeEste tipo es un sinónimo de Alloc::value_type.
allocator_traits::void_pointerEste tipo es Alloc::void_pointer, en caso que el tipo es correcto; en caso contrario, este tipo es pointer_traits<pointer>::rebind<void>.

Métodos estáticos

Los siguientes métodos estáticos llaman al método correspondiente en un parámetro de asignador determinado.

NombreDescripción
allocator_traits:: Allocate (método)Método estático que asigna memoria utilizando el parámetro de asignador determinado.
allocator_traits:: Construct (método)Método estático que usa un asignador especificado para construir un objeto.
allocator_traits:: DEALLOCATE (método)Método estático que usa un asignador especificado para cancelar la asignación de un número especificado de objetos.
allocator_traits:: Destroy (método)Método estático que usa un asignador especificado para llamar al destructor de un objeto sin desasignar la memoria.
allocator_traits:: max_size (método)Método estático que usa un asignador especificado para determinar el número máximo de objetos que se pueden asignar.
allocator_traits:: select_on_container_copy_construction (método)Método estático que se llama a select_on_container_copy_construction en el asignador especificado.

Encabezado:<>>

Espacio de nombres: std

Método estático que asigna memoria utilizando el parámetro de asignador 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
Un objeto de asignador.

count
El número de elementos que se va a asignar.

hint
Un const_pointer que podría ayudarle al objeto de asignador que satisface la solicitud de almacenamiento ubicando la dirección de un objeto asignado antes de la solicitud. Un puntero null se trata como ninguna sugerencia.

Valor devuelto

Cada método devuelve un puntero al objeto asignado.

Devuelve el primer método estático al.allocate(count).

El segundo método devuelve al.allocate(count, hint), si expresión está bien formado; en caso contrario, devuelve al.allocate(count).

Método estático que usa un asignador especificado para construir un objeto.

template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);

Parámetros

al
Un objeto de asignador.

ptr
Puntero a la ubicación donde el objeto se va a construir.

args
Una lista de argumentos que se pasa al constructor de objetos.

Comentarios

Las llamadas a funciones miembro estáticas al.construct(ptr, args...), si expresión está bien formada; de lo contrario, se evalúa como ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...).

Método estático que usa un asignador especificado para cancelar la asignación de un número especificado de objetos.

static void deallocate(Alloc al,
    pointer ptr,
    size_type count);

Parámetros

al
Un objeto de asignador.

ptr
Puntero a la ubicación inicial de los objetos que se va a cancelar la asignación.

count
El número de objetos que se va a desasignar.

Comentarios

Este método llama a al.deallocate(ptr, count).

Este método produce nada.

Método estático que usa un asignador especificado para llamar al destructor de un objeto sin desasignar la memoria.

template <class Uty>
static void destroy(Alloc& al, Uty* ptr);

Parámetros

al
Un objeto de asignador.

ptr
Puntero a la ubicación del objeto.

Comentarios

Este método llama a al.destroy(ptr), si expresión está bien formada; de lo contrario, se evalúa como ptr->~Uty().

Método estático que usa un asignador especificado para determinar el número máximo de objetos que se pueden asignar.

static size_type max_size(const Alloc& al);

Parámetros

al
Un objeto de asignador.

Comentarios

Este método devuelve al.max_size(), si expresión está bien formado; en caso contrario, devuelve numeric_limits<size_type>::max().

Método estático que se llama a select_on_container_copy_construction en el asignador especificado.

static Alloc select_on_container_copy_construction(const Alloc& al);

Parámetros

al
Un objeto de asignador.

Valor devuelto

Este método devuelve al.select_on_container_copy_construction(), en caso que el tipo está bien formado; en caso contrario, devuelve al.

Comentarios

Este método se utiliza para especificar un asignador cuando el contenedor asociado está construido de copia.

<>>
pointer_traits (struct)
scoped_allocator_adaptor (clase)

Mostrar: