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