Compartir a través de


Macros

El 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 de plantilla y una especialización que definen una clase de plantilla de asignador que usa el filtro de sincronización y una caché de tipo .

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 .

#define CACHE_CHUNKLIST <cache_class>

CACHE_FREELIST

Produce .

#define CACHE_FREELIST(max) <cache_class>

CACHE_SUBALLOC

Produce .

#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 único subproceso y de varios, en el caso de las aplicaciones de un único subproceso la macro produce ; en todos los demás casos, produce .

Consulte también

Asignadores