Compartir a través de


rts_alloc (Clase)

La plantilla de clase rts_alloc describe un filtro que contiene una matriz de instancias de caché y determina la instancia que se va a usar para la asignación y la desasignación en tiempo de ejecución, y no en tiempo de compilación.

Sintaxis

template <class Cache>
class rts_alloc

Parámetros

Cache
El tipo de instancias de caché contenido en la matriz. Puede ser cache_chunklist, cache_freelist o cache_suballoc.

Comentarios

Esta plantilla de clase contiene varias instancias del asignador de bloques y determina la instancia que se va a usar para la asignación o desasignación en tiempo de ejecución, y no en tiempo de compilación. Se usa con los compiladores que no se pueden reenlazar mediante compilación.

Funciones miembro

Función de miembro Descripción
allocate Asigna un bloque de memoria.
deallocate Libera un número especificado de objetos del almacenamiento, a partir de la posición especificada.
equals Compara dos cachés para determinar si son iguales.

Requisitos

Encabezado:<allocators>

Espacio de nombres: stdext

rts_alloc::allocate

Asigna un bloque de memoria.

void *allocate(std::size_t count);

Parámetros

count
El número de elementos de la matriz que se van a asignar.

Valor devuelto

Un puntero al objeto asignado.

Comentarios

La función miembro devuelve caches[_IDX].allocate(count), donde el índice _IDX viene determinado por el tamaño del bloque solicitado count, o bien, si count es demasiado grande, devuelve operator new(count). cache, que representa el objeto de caché.

rts_alloc::d eallocate

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

void deallocate(void* ptr, std::size_t count);

Parámetros

ptr
Un puntero al primer objeto que se va a desasignar del almacenamiento.

count
El número de objetos que se van a desasignar del almacenamiento.

Comentarios

La función miembro llama a caches[_IDX].deallocate(ptr, count), donde el índice _IDX viene determinado por el tamaño del bloque solicitado count, o bien, si count es demasiado grande, devuelve operator delete(ptr).

rts_alloc::equals

Compara dos cachés para determinar si son iguales.

bool equals(const sync<_Cache>& _Other) const;

Parámetros

_Cache
El objeto de caché asociado con el filtro.

_Other
El objeto de caché para comparar la igualdad.

Comentarios

true si el resultado de caches[0].equals(other.caches[0]); en caso contrario, false. caches representa la matriz de objetos de caché.

Consulte también

ALLOCATOR_DECL
<allocators>