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.
El <allocators> encabezado proporciona las siguientes macros:
ALLOCATOR_DECL
Da como resultado una plantilla de clase de asignador.
#define ALLOCATOR_DECL(cache, sync, name) <alloc_template>
Comentarios
La macro produce una definición template <class Type> class name {.....} de plantilla y una especialización template <> class name<void> {.....} que definen una plantilla de clase de asignador que usa el filtro sync de sincronización y una memoria caché de tipo cache.
En el caso de los compiladores que pueden compilar reenlaces, la definición de plantilla resultante tiene el siguiente aspecto:
struct rebind
{ /* convert a name<Type> to a name<Other> */
typedef name<Other> other;
};
En el caso de los compiladores que no pueden compilar reenlaces, la definición de plantilla resultante tiene el siguiente aspecto:
template <class Type<class name
: public stdext::allocators::allocator_base<Type,
sync<stdext::allocators::rts_alloc<cache>>>
{
public:
name() {}
template <class Other>
name(const name<Other>&) {}
template <class Other>
name& operator= (const name<Other>&)
{
return *this;
}
};
CACHE_CHUNKLIST
Produce stdext::allocators::cache_chunklist<sizeof(Type)>.
#define CACHE_CHUNKLIST <cache_class>
CACHE_FREELIST
Produce stdext::allocators::cache_freelist<sizeof(Type), max>.
#define CACHE_FREELIST(max) <cache_class>
CACHE_SUBALLOC
Produce stdext::allocators::cache_suballoc<sizeof(Type)>.
#define CACHE_SUBALLOC <cache_class>
SYNC_DEFAULT
Da como resultado un filtro de sincronización.
#define SYNC_DEFAULT <sync_template>
Comentarios
Si un compilador admite la compilación de aplicaciones de un solo subproceso y de varios subprocesos, para las aplicaciones de un solo subproceso, la macro produce stdext::allocators::sync_none; en todos los demás casos produce stdext::allocators::sync_shared.