다음을 통해 공유


MakeAllocator 클래스

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

구문

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

매개 변수

T
형식 이름.

hasWeakReferenceSupport
true 약한 참조를 지원하는 개체에 대한 메모리를 할당하려면 입니다. false 약한 참조를 지원하지 않는 개체에 대한 메모리를 할당합니다.

설명

약한 참조 지원을 사용하거나 사용하지 않고 활성화 가능한 클래스에 대한 메모리를 할당합니다.

클래스를 재정의 MakeAllocator 하여 사용자 정의 메모리 할당 모델을 구현합니다.

MakeAllocator 는 일반적으로 생성 중에 개체가 throw되는 경우 메모리 누수 방지에 사용됩니다.

멤버

공용 생성자

속성 설명
MakeAllocator::MakeAllocator MakeAllocator 클래스의 새 인스턴스를 초기화합니다.
MakeAllocator::~MakeAllocator 클래스의 현재 인스턴스를 초기화합니다 MakeAllocator .

공용 메서드

이름 설명
MakeAllocator::Allocate 메모리를 할당하고 현재 MakeAllocator 개체와 연결합니다.
MakeAllocator::D etach 현재 MakeAllocator 개체에서 Allocate 메서드에 의해 할당된 메모리를 분리합니다.

상속 계층 구조

MakeAllocator

요구 사항

헤더: implements.h

네임스페이스: Microsoft::WRL::D etails

MakeAllocator::Allocate

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

__forceinline void* Allocate();

Return Value

성공하면 할당된 메모리에 대한 포인터입니다. 그렇지 않으면 . nullptr

설명

메모리를 할당하고 현재 MakeAllocator 개체와 연결합니다.

할당된 메모리의 크기는 현재 MakeAllocator 템플릿 매개 변수에 지정된 형식의 크기입니다.

개발자는 다른 메모리 할당 모델을 구현하기 위해 메서드만 Allocate() 재정의해야 합니다.

MakeAllocator::D etach

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

__forceinline void Detach();

설명

현재 MakeAllocator 개체에서 Allocate 메서드에 의해 할당된 메모리를 분리합니다.

호출 Detach()하는 경우 메서드에서 제공하는 메모리를 삭제해야 합니다 Allocate .

MakeAllocator::MakeAllocator

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

MakeAllocator();

설명

MakeAllocator 클래스의 새 인스턴스를 초기화합니다.

MakeAllocator::~MakeAllocator

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

~MakeAllocator();

설명

클래스의 현재 인스턴스를 초기화합니다 MakeAllocator .

이 소멸자는 필요한 경우 기본 할당된 메모리도 삭제합니다.