allocator_base (Clase)

 

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

Define la clase base y las funciones comunes necesarias para crear un asignador definido por el usuario a partir de un filtro de sincronización.

template <class Type, class Sync>  
class allocator_base

Parámetros

ParámetroDescripción
TypeTipo de elementos que asigna el asignador.
SyncLa directiva de sincronización para el asignador, que es sync_none (clase), sync_per_container (clase), sync_per_thread (clase), o sync_shared (clase).

Constructores

allocator_baseConstruye un objeto de tipo allocator_base.

Definiciones de tipo

const_pointerTipo que proporciona un puntero constante al tipo de objeto administrado por el asignador.
const_referenceTipo que proporciona una referencia constante al tipo de objeto administrado por el asignador.
difference_typeTipo entero con signo que puede representar la diferencia entre valores de punteros que señalan al tipo de objeto administrado por el asignador.
punteroTipo que proporciona un puntero al tipo de objeto administrado por el asignador.
referenciaTipo que proporciona una referencia al tipo de objeto administrado por el asignador.
size_typeTipo entero sin signo que puede representar la longitud de cualquier secuencia que un objeto de clase de plantilla allocator_base puede asignar.
value_typeTipo administrado por el asignador.

Funciones miembro

_CharallocAsigna almacenamiento para una matriz de tipo char.
_ChardeallocLibera almacenamiento para la matriz que contiene elementos de tipo char.
direcciónEncuentra la dirección de un objeto cuyo valor se especifica.
asignarAsigna un bloque de memoria lo suficientemente grande como para almacenar al menos un número especificado de elementos.
construcciónCrea un tipo concreto de objeto en una dirección especificada que se inicializa con un valor especificado.
desasignarLibera un número especificado de objetos del almacenamiento, a partir de la posición especificada.
destruirLlama a un destructor de objetos sin desasignar la memoria donde el objeto se almacena.
max_sizeDevuelve el número de elementos de tipo Type que podría asignar un objeto de clase allocator antes de que la memoria libre se agote.

Encabezado:<>>

Espacio de nombres: stdext

Asigna almacenamiento para una matriz de tipo char.

char *_Charalloc(size_type count);

Parámetros

ParámetroDescripción
countEl número de elementos de la matriz que se va a asignar.

Valor devuelto

Un puntero al objeto asignado.

Comentarios

Esta función miembro se usa los contenedores cuando se compila con un compilador que no se puede compilar el reenlace. Implementa _Charalloc para el asignador definido por el usuario, devolviendo el resultado de una llamada a la allocate función del filtro de sincronización.

Libera almacenamiento para la matriz que contiene elementos de tipo char.

void _Chardealloc(void* ptr, size_type count);

Parámetros

ParámetroDescripción
ptrUn puntero al primer objeto cancelar la asignación de almacenamiento.
countEl número de objetos que se va a cancelar la asignación de almacenamiento.

Comentarios

Esta función miembro se usa los contenedores cuando se compila con un compilador que no se puede compilar el reenlace. Implementa _Chardealloc para el asignador definido por el usuario mediante una llamada a la deallocate función del filtro de sincronización. El puntero ptr debe haber devuelto anteriormente mediante una llamada a _Charalloc para un objeto de asignador es igual a *this, asignar un objeto de matriz del mismo tamaño y tipo. _Chardealloc nunca inicia una excepción.

Encuentra la dirección de un objeto cuyo valor se especifica.

pointer address(reference val);

const_pointer address(const_reference val);

Parámetros

val
El valor constante o nonconst del objeto cuya dirección se busca.

Valor devuelto

Se encontraron const o nonconst puntero al objeto, respectivamente, const o nonconst del valor de.

Comentarios

Esta función miembro se implementa para el asignador definido por el usuario devolviendo &val.

Asigna un bloque de memoria lo suficientemente grande como para almacenar al menos un número especificado de elementos.

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

pointer allocate(size_type _Nx);

Parámetros

ParámetroDescripción
_NxEl número de elementos de la matriz que se va a asignar.
_HintEste parámetro se ignora.

Valor devuelto

Un puntero al objeto asignado.

Comentarios

La función miembro implementa la asignación de memoria para el asignador definido por el usuario devolviendo el resultado de una llamada a la allocate función del filtro de sincronización de tipo * si _Nx == 1, en caso contrario, devuelve el resultado de una llamada a operator new(_Nx * sizeof(Type)) conversión al tipo de tipo *.

Construye un objeto de tipo allocator_base.

allocator_base();

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

Parámetros

ParámetroDescripción
rightObjeto de asignador que se va a copiar.

Comentarios

El primer constructor crea un allocator_base instancia. El segundo constructor crea un allocator_base como la instancia que para cualquier allocator_base<Type, _Sync> instancia a, allocator_base<Type, Sync>(allocator_base<Other, Sync>(a)) == a.

Tipo que proporciona un puntero constante al tipo de objeto administrado por el asignador.

typedef const Type *const_pointer;

Tipo que proporciona una referencia constante al tipo de objeto administrado por el asignador.

typedef const Type& const_reference;

Crea un tipo concreto de objeto en una dirección especificada que se inicializa con un valor especificado.

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

Parámetros

ParámetroDescripción
ptrPuntero a la ubicación donde el objeto se va a construir.
valEl valor con el que el objeto que se está construyendo se va a inicializar.

Comentarios

Esta función miembro se implementa para el asignador definido por el usuario mediante una llamada a new((void*)ptr Type(val).

Libera un número especificado de objetos del almacenamiento, a partir de la posición especificada.

void deallocate(pointer ptr, size_type _Nx);

Parámetros

ParámetroDescripción
ptrUn puntero al primer objeto cancelar la asignación de almacenamiento.
_NxEl número de objetos que se va a cancelar la asignación de almacenamiento.

Comentarios

Esta función miembro se implementa para el asignador definido por el usuario mediante una llamada a deallocate(ptr) en el filtro de sincronización Sync si _Nx == 1, en caso contrario, al llamar a operator delete(_Nx * ptr).

Llama a un destructor de objetos sin desasignar la memoria donde el objeto se almacena.

void destroy(pointer ptr);

Parámetros

ParámetroDescripción
ptrUn puntero designar la dirección del objeto que se va a destruir.

Comentarios

Esta función miembro se implementa para el asignador definido por el usuario mediante una llamada a ptr->~Type().

Tipo entero con signo que puede representar la diferencia entre valores de punteros que señalan al tipo de objeto administrado por el asignador.

typedef std::ptrdiff_t difference_type;

Devuelve el número de elementos de tipo Type que podría asignar un objeto de clase allocator antes de que la memoria libre se agote.

size_type max_size() const;

Valor devuelto

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

Comentarios

Esta función miembro se implementa para el asignador definido por el usuario devolviendo (size_t)-1 / sizeof(Type) si 0 < (size_t)-1 / sizeof(Type), de lo contrario, 1.

Tipo que proporciona un puntero al tipo de objeto administrado por el asignador.

typedef Type *pointer;

Tipo que proporciona una referencia al tipo de objeto administrado por el asignador.

typedef Type& reference;

Tipo entero sin signo que puede representar la longitud de cualquier secuencia que un objeto de clase de plantilla allocator_base puede asignar.

typedef std::size_t size_type;

Tipo administrado por el asignador.

typedef Type value_type;

<>>

Mostrar: