Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Macros
O <allocators> cabeçalho fornece as seguintes macros:
ALLOCATOR_DECL
Produz um modelo de classe allocator.
#define ALLOCATOR_DECL(cache, sync, name) <alloc_template>
Comentários
A macro produz uma definição template <class Type> class name {.....} de modelo e uma especialização template <> class name<void> {.....} que, juntas, definem um modelo de classe de alocador que usa o filtro sync de sincronização e um cache do tipo cache.
Para os compiladores que podem compilar reassociação, a definição de modelo resultante tem esta aparência:
struct rebind
{ /* convert a name<Type> to a name<Other> */
typedef name<Other> other;
};
Para compiladores que não podem compilar reassociação, a definição de modelo resultante tem esta aparência:
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)>Produz .
#define CACHE_CHUNKLIST <cache_class>
CACHE_FREELIST
stdext::allocators::cache_freelist<sizeof(Type), max>Produz .
#define CACHE_FREELIST(max) <cache_class>
CACHE_SUBALLOC
stdext::allocators::cache_suballoc<sizeof(Type)>Produz .
#define CACHE_SUBALLOC <cache_class>
SYNC_DEFAULT
Produz um filtro de sincronização.
#define SYNC_DEFAULT <sync_template>
Comentários
Se um compilador der suporte à compilação de aplicativos de thread único e de vários threads, para aplicativos com thread único a macro produzirá stdext::allocators::sync_none; em todos os outros casos, ela produzirá stdext::allocators::sync_shared.