<allocators>
-Makros
ALLOCATOR_DECL
Gibt eine Allocator-Klassenvorlage zurück.
#define ALLOCATOR_DECL(cache, sync, name) <alloc_template>
Hinweise
Das Makro liefert eine Vorlagendefinition template <class Type> class name {.....}
und eine Spezialisierung template <> class name<void> {.....}
, die zusammen eine Allocator-Klassenvorlage definiert, die den Synchronisierungsfilter sync
und einen Cache vom Typ cache
verwendet.
Für Compiler, die Neubindungen kompilieren können, sieht die resultierende Vorlagendefinition wie folgt aus:
struct rebind
{ /* convert a name<Type> to a name<Other> */
typedef name<Other> other;
};
Für Compiler, die Neubindungen nicht kompilieren können, sieht die resultierende Vorlagendefinition wie folgt aus:
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
Gibt stdext::allocators::cache_chunklist<sizeof(Type)>
aus.
#define CACHE_CHUNKLIST <cache_class>
Hinweise
CACHE_FREELIST
Gibt stdext::allocators::cache_freelist<sizeof(Type), max>
aus.
#define CACHE_FREELIST(max) <cache_class>
Hinweise
CACHE_SUBALLOC
Gibt stdext::allocators::cache_suballoc<sizeof(Type)>
aus.
#define CACHE_SUBALLOC <cache_class>
Hinweise
SYNC_DEFAULT
Gibt einen Synchronisierungsfilter aus.
#define SYNC_DEFAULT <sync_template>
Hinweise
Wenn ein Compiler das Kompilieren sowohl von Singlethread- als auch von Multithread-Anwendungen unterstützt, gibt das Makro für die Singlethread-Anwendung stdext::allocators::sync_none
aus; andernfalls gibt es stdext::allocators::sync_shared
aus.