Sdílet prostřednictvím


<allocators> makra

ALLOCATOR_DECL

Vytvoří šablonu třídy alokátoru.

#define ALLOCATOR_DECL(cache, sync, name) <alloc_template>

Poznámky

Makro poskytuje definici template <class Type> class name {.....} šablony a specializaci template <> class name<void> {.....} , která společně definuje šablonu třídy alokátoru, která používá synchronizační filtr sync a mezipaměť typu cache.

U kompilátorů, které mohou znovu zkompilovat vazby, vypadá výsledná definice šablony takto:

struct rebind
   {    /* convert a name<Type> to a name<Other> */
   typedef name<Other> other;
   };

U kompilátorů, které nemohou znovu zkompilovat definici výsledné šablony, vypadá takto:

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

Výnosy stdext::allocators::cache_chunklist<sizeof(Type)>.

#define CACHE_CHUNKLIST <cache_class>

Poznámky

CACHE_FREELIST

Výnosy stdext::allocators::cache_freelist<sizeof(Type), max>.

#define CACHE_FREELIST(max) <cache_class>

Poznámky

CACHE_SUBALLOC

Výnosy stdext::allocators::cache_suballoc<sizeof(Type)>.

#define CACHE_SUBALLOC <cache_class>

Poznámky

SYNC_DEFAULT

Vytvoří filtr synchronizace.

#define SYNC_DEFAULT <sync_template>

Poznámky

Pokud kompilátor podporuje kompilování jednovláknových i vícevláknových aplikací pro jednovláknové aplikace, získá makro výnos stdext::allocators::sync_none; ve všech ostatních případech ho stdext::allocators::sync_sharedpřinese .

Viz také

<alokátory>