Partager via


ALLOCATOR_DECL (<allocators>)

Génère une classe modèle d'allocateur.

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

Notes

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

Pour les compilateurs qui peuvent compiler rebind, la définition modèle résultante ressemble à :

template <class Type> class name
    : public stdext::allocators::allocator_base<Type, sync<cache > >
    {
    public:
        name() {}
        template <class Other> name(const name<Other>&) {}
        template <class Other> name& operator = (const name<Other>&)
            {return *this; }
        template <class Other> 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 modèle résultante ressemble à :

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; }
    };

Configuration requise

En-tête : <allocateurs>

Espace de noms : stdext

Voir aussi

Référence

<allocators>