Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die <allocators> Kopfzeile stellt die folgenden Makros bereit:
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 cacheverwendet.
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
stdext::allocators::cache_chunklist<sizeof(Type)>Ergibt .
#define CACHE_CHUNKLIST <cache_class>
CACHE_FREELIST
stdext::allocators::cache_freelist<sizeof(Type), max>Ergibt .
#define CACHE_FREELIST(max) <cache_class>
CACHE_SUBALLOC
stdext::allocators::cache_suballoc<sizeof(Type)>Ergibt .
#define CACHE_SUBALLOC <cache_class>
SYNC_DEFAULT
Gibt einen Synchronisierungsfilter aus.
#define SYNC_DEFAULT <sync_template>
Hinweise
Wenn ein Compiler das Kompilieren von Singlethread- und Multithread-Anwendungen unterstützt, liefert das Makro für Singlethread-Anwendungen das Makro; in allen anderen Fällen ergibt stdext::allocators::sync_nonestdext::allocators::sync_sharedes .