Partager via


MakeAllocator (classe)

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

Syntaxe

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>;

Paramètres

T
Un nom de type.

hasWeakReferenceSupport
true pour allouer de la mémoire pour un objet qui prend en charge les références faibles ; false pour allouer de la mémoire pour un objet qui ne prend pas en charge les références faibles.

Notes

Alloue de la mémoire pour une classe activable, avec ou sans prise en charge de référence faible.

Remplacez la MakeAllocator classe pour implémenter un modèle d’allocation de mémoire défini par l’utilisateur.

MakeAllocator est généralement utilisé pour empêcher les fuites de mémoire si un objet lève pendant la construction.

Membres

Constructeurs publics

Nom Description
MakeAllocator ::MakeAllocator Initialise une nouvelle instance de la classe MakeAllocator.
MakeAllocator ::~MakeAllocator Désinitialise l’instance actuelle de la MakeAllocator classe.

Méthodes publiques

Nom Description
MakeAllocator ::Allocate Alloue de la mémoire et l’associe à l’objet actuel MakeAllocator .
MakeAllocator ::D etach Dissocie la mémoire allouée par la méthode Allocate de l’objet actuel MakeAllocator .

Hiérarchie d'héritage

MakeAllocator

Spécifications

En-tête : implements.h

Namespace : Microsoft ::WRL ::D etails

MakeAllocator ::Allocate

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

__forceinline void* Allocate();

Valeur de retour

En cas de réussite, un pointeur vers la mémoire allouée ; sinon, nullptr.

Notes

Alloue de la mémoire et l’associe à l’objet actuel MakeAllocator .

La taille de la mémoire allouée est la taille du type spécifié par le paramètre de modèle actuel MakeAllocator .

Un développeur doit remplacer uniquement la Allocate() méthode pour implémenter un autre modèle d’allocation de mémoire.

MakeAllocator ::D etach

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

__forceinline void Detach();

Notes

Dissocie la mémoire allouée par la méthode Allocate de l’objet actuel MakeAllocator .

Si vous appelez Detach(), vous êtes responsable de la suppression de la mémoire fournie par la Allocate méthode.

MakeAllocator ::MakeAllocator

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

MakeAllocator();

Notes

Initialise une nouvelle instance de la classe MakeAllocator.

MakeAllocator ::~MakeAllocator

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

~MakeAllocator();

Notes

Désinitialise l’instance actuelle de la MakeAllocator classe.

Ce destructeur supprime également la mémoire allouée sous-jacente si nécessaire.