Partilhar via


Classe MakeAllocator

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

Sintaxe

template<
    typename T,
    bool hasWeakReferenceSupport =
          !__is_base_of(RuntimeClassFlags<InhibitWeakReference>,
                        T)
>
class MakeAllocator;

template<typename T>
class MakeAllocator<T, false>;

template<typename T>
class MakeAllocator<T, true>;

Parâmetros

T
O nome de um tipo.

hasWeakReferenceSupport
true para alocar memória para um objeto que dá suporte a referências fracas; false para alocar memória para um objeto que não dá suporte a referências fracas.

Comentários

Aloca memória para uma classe ativável, com ou sem suporte a referências fracas.

Substitui a classe MakeAllocator para implementar um modelo de alocação de memória definido pelo usuário.

MakeAllocator normalmente é usado para evitar perdas de memória se um objeto for lançado durante a construção.

Membros

Construtores públicos

Nome Descrição
MakeAllocator::MakeAllocator Inicializa uma nova instância da classe MakeAllocator.
MakeAllocator::~MakeAllocator Desinicializa a instância atual da classe MakeAllocator.

Métodos públicos

Nome Descrição
MakeAllocator::Allocate Aloca memória e a associa ao objeto atual MakeAllocator.
MakeAllocator::Detach Desassocia a memória alocada pelo método Allocate do objeto atual MakeAllocator.

Hierarquia de herança

MakeAllocator

Requisitos

Cabeçalho: implements.h

Namespace: Microsoft::WRL::Details

MakeAllocator::Allocate

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

__forceinline void* Allocate();

Valor de retorno

Se tiver êxito, um ponteiro para a memória alocada; caso contrário, nullptr.

Comentários

Aloca memória e a associa ao objeto atual MakeAllocator.

O tamanho da memória alocada é o tamanho do tipo especificado pelo parâmetro de modelo atual MakeAllocator.

Um desenvolvedor precisa substituir apenas o método Allocate() para implementar um modelo diferente de alocação de memória.

MakeAllocator::Detach

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

__forceinline void Detach();

Comentários

Desassocia a memória alocada pelo método Allocate do objeto atual MakeAllocator.

Se você chamar Detach(), será responsável por excluir a memória fornecida pelo método Allocate.

MakeAllocator::MakeAllocator

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

MakeAllocator();

Comentários

Inicializa uma nova instância da classe MakeAllocator.

MakeAllocator::~MakeAllocator

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

~MakeAllocator();

Comentários

Desinicializa a instância atual da classe MakeAllocator.

Esse destruidor também exclui a memória alocada subjacente, se necessário.