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
.