Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
ALLOCATOR_DECL
Ger en allokeringsklassmall.
#define ALLOCATOR_DECL(cache, sync, name) <alloc_template>
Anmärkningar
Makrot ger en malldefinition template <class Type> class name {.....} och en specialisering template <> class name<void> {.....} som tillsammans definierar en allokeringsklassmall som använder synkroniseringsfiltret sync och en cache av typen cache.
För kompilatorer som kan kompilera ombindning ser den resulterande malldefinitionen ut så här:
struct rebind
{ /* convert a name<Type> to a name<Other> */
typedef name<Other> other;
};
För kompilatorer som inte kan kompilera om den resulterande malldefinitionen ser ut så här:
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
stdext::allocators::cache_chunklist<sizeof(Type)>Ger .
#define CACHE_CHUNKLIST <cache_class>
CACHE_FREELIST
stdext::allocators::cache_freelist<sizeof(Type), max>Ger .
#define CACHE_FREELIST(max) <cache_class>
CACHE_SUBALLOC
stdext::allocators::cache_suballoc<sizeof(Type)>Ger .
#define CACHE_SUBALLOC <cache_class>
SYNC_DEFAULT
Ger ett synkroniseringsfilter.
#define SYNC_DEFAULT <sync_template>
Anmärkningar
Om en kompilator har stöd för kompilering av både entrådade och flertrådade program ger makrot stdext::allocators::sync_nonei alla andra fall stdext::allocators::sync_shared.