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é.