Freigeben über


<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 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

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.

Siehe auch

<allocators>