MakeAllocator — Klasa

Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.

Składnia

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

Parametry

T
Nazwa typu.

hasWeakReferenceSupport
true aby przydzielić pamięć dla obiektu, który obsługuje słabe odwołania; false aby przydzielić pamięć dla obiektu, który nie obsługuje słabych odwołań.

Uwagi

Przydziela pamięć dla klasy możliwej do aktywowania z obsługą słabych odwołań lub bez jej obsługi.

Zastąpij klasę w MakeAllocator celu zaimplementowania modelu alokacji pamięci zdefiniowanej przez użytkownika.

MakeAllocator jest zwykle używany do zapobiegania wyciekom pamięci, jeśli obiekt zgłasza się podczas budowy.

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
MakeAllocator::MakeAllocator Inicjuje nowe wystąpienie klasy MakeAllocator.
MakeAllocator::~MakeAllocator Deinitializuje bieżące wystąpienie MakeAllocator klasy.

Metody publiczne

Nazwa/nazwisko opis
MakeAllocator::Przydziel Przydziela pamięć i kojarzy ją z bieżącym MakeAllocator obiektem.
MakeAllocator::D etach Usuwa skojarzenie pamięci przydzielonej przez metodę Allocate z bieżącego MakeAllocator obiektu.

Hierarchia dziedziczenia

MakeAllocator

Wymagania

Nagłówek: implements.h

Przestrzeń nazw: Microsoft::WRL::D etails

MakeAllocator::Przydziel

Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.

__forceinline void* Allocate();

Wartość zwracana

Jeśli operacja powiedzie się, wskaźnik do przydzielonej pamięci; w przeciwnym razie, nullptr.

Uwagi

Przydziela pamięć i kojarzy ją z bieżącym MakeAllocator obiektem.

Rozmiar przydzielonej pamięci to rozmiar typu określonego przez bieżący MakeAllocator parametr szablonu.

Deweloper musi zastąpić tylko metodę Allocate() implementowania innego modelu alokacji pamięci.

MakeAllocator::D etach

Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.

__forceinline void Detach();

Uwagi

Usuwa skojarzenie pamięci przydzielonej przez metodę Allocate z bieżącego MakeAllocator obiektu.

Jeśli wywołasz metodę Detach(), odpowiadasz za usunięcie pamięci dostarczonej przez metodę Allocate .

MakeAllocator::MakeAllocator

Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.

MakeAllocator();

Uwagi

Inicjuje nowe wystąpienie klasy MakeAllocator.

MakeAllocator::~MakeAllocator

Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.

~MakeAllocator();

Uwagi

Deinitializuje bieżące wystąpienie MakeAllocator klasy.

W razie potrzeby ten destruktor usuwa również podstawową przydzieloną pamięć.