Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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é.