Dela via


<allocators> Makron

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.

Se även

<allokerare>