Partager via


Macros <allocators>

ALLOCATOR_DECL

Génère un modèle de classe d’allocator.

#define ALLOCATOR_DECL(cache, sync, name) <alloc_template>

Notes

La macro génère une définition template <class Type> class name {.....} de modèle et une spécialisation template <> class name<void> {.....} qui définissent ensemble un modèle de classe d’allocator qui utilise le filtre sync de synchronisation et un cache de type cache.

Pour les compilateurs qui peuvent compiler rebind, la définition de modèle obtenue ressemble à ceci :

struct rebind
   {    /* convert a name<Type> to a name<Other> */
   typedef name<Other> other;
   };

Pour les compilateurs qui ne peuvent pas compiler rebind, la définition de modèle obtenue ressemble à ceci :

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

Génère stdext::allocators::cache_chunklist<sizeof(Type)>.

#define CACHE_CHUNKLIST <cache_class>

Notes

CACHE_FREELIST

Génère stdext::allocators::cache_freelist<sizeof(Type), max>.

#define CACHE_FREELIST(max) <cache_class>

Notes

CACHE_SUBALLOC

Génère stdext::allocators::cache_suballoc<sizeof(Type)>.

#define CACHE_SUBALLOC <cache_class>

Notes

SYNC_DEFAULT

Génère un filtre de synchronisation.

#define SYNC_DEFAULT <sync_template>

Notes

Si un compilateur prend en charge la compilation d’applications monothread et multithread, pour les applications monothread, la macro génère stdext::allocators::sync_none ; dans tous les autres cas, elle génère stdext::allocators::sync_shared.

Voir aussi

<allocators>