Udostępnij za pośrednictwem


<allocators> Makra

ALLOCATOR_DECL

Zwraca szablon klasy alokatora.

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

Uwagi

Makro daje definicję template <class Type> class name {.....} szablonu i specjalizację template <> class name<void> {.....} , która razem definiuje szablon klasy alokatora, który używa filtru sync synchronizacji i pamięci podręcznej typu cache.

W przypadku kompilatorów, które mogą kompilować ponownie powiązanie, wynikowa definicja szablonu wygląda następująco:

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

W przypadku kompilatorów, które nie mogą skompilować ponownie powiązania wynikowej definicji szablonu, wygląda następująco:

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)>Daje .

#define CACHE_CHUNKLIST <cache_class>

Uwagi

CACHE_FREELIST

stdext::allocators::cache_freelist<sizeof(Type), max>Daje .

#define CACHE_FREELIST(max) <cache_class>

Uwagi

CACHE_SUBALLOC

stdext::allocators::cache_suballoc<sizeof(Type)>Daje .

#define CACHE_SUBALLOC <cache_class>

Uwagi

SYNC_DEFAULT

Zwraca filtr synchronizacji.

#define SYNC_DEFAULT <sync_template>

Uwagi

Jeśli kompilator obsługuje kompilowanie zarówno jednowątkowych, jak i wielowątowych aplikacji, w przypadku aplikacji jednowątkowych makro daje wartość ; we wszystkich innych przypadkach daje stdext::allocators::sync_nonestdext::allocators::sync_sharedwartość .

Zobacz też

<Allocators>