Aracılığıyla paylaş


MakeAllocator Sınıfı

WRL altyapısını destekler ve doğrudan kodunuzdan kullanılmak üzere tasarlanmamıştır.

Sözdizimi

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

Parametreler

T
Bir tür adı.

hasWeakReferenceSupport
true zayıf başvuruları destekleyen bir nesne için bellek ayırmak için; false zayıf başvuruları desteklemeyen bir nesne için bellek ayırmak için.

Açıklamalar

Zayıf başvuru desteğine sahip veya olmayan, eyleme geçilebilir bir sınıf için bellek ayırır.

MakeAllocator Kullanıcı tanımlı bir bellek ayırma modeli uygulamak için sınıfını geçersiz kılın.

MakeAllocator genellikle bir nesne inşaat sırasında atarsa bellek sızıntılarını önlemek için kullanılır.

Üyeler

Ortak Oluşturucular

Ad Tanım
MakeAllocator::MakeAllocator MakeAllocator sınıfının yeni bir örneğini başlatır.
MakeAllocator::~MakeAllocator Sınıfın geçerli örneğini MakeAllocator başlatır.

Genel Yöntemler

Ad Tanım
MakeAllocator::Allocate Belleği ayırır ve geçerli MakeAllocator nesneyle ilişkilendirir.
MakeAllocator::D etach Geçerli MakeAllocator nesneden Allocate yöntemi tarafından ayrılan belleği ayırır.

Devralma Hiyerarşisi

MakeAllocator

Gereksinimler

Üst bilgi: implements.h

Ad Alanı: Microsoft::WRL::D etails

MakeAllocator::Allocate

WRL altyapısını destekler ve doğrudan kodunuzdan kullanılmak üzere tasarlanmamıştır.

__forceinline void* Allocate();

İade Değeri

Başarılı olursa, ayrılan belleğe bir işaretçi; aksi takdirde , nullptr.

Açıklamalar

Belleği ayırır ve geçerli MakeAllocator nesneyle ilişkilendirir.

Ayrılan belleğin boyutu, geçerli MakeAllocator şablon parametresi tarafından belirtilen türün boyutudur.

Bir geliştiricinin Allocate() farklı bir bellek ayırma modeli uygulamak için yalnızca yöntemini geçersiz kılması gerekir.

MakeAllocator::D etach

WRL altyapısını destekler ve doğrudan kodunuzdan kullanılmak üzere tasarlanmamıştır.

__forceinline void Detach();

Açıklamalar

Geçerli MakeAllocator nesneden Allocate yöntemi tarafından ayrılan belleği ayırır.

çağrısı Detach()yaparsanız, yöntemi tarafından sağlanan belleği silmek sizin sorumluluğundadır Allocate .

MakeAllocator::MakeAllocator

WRL altyapısını destekler ve doğrudan kodunuzdan kullanılmak üzere tasarlanmamıştır.

MakeAllocator();

Açıklamalar

MakeAllocator sınıfının yeni bir örneğini başlatır.

MakeAllocator::~MakeAllocator

WRL altyapısını destekler ve doğrudan kodunuzdan kullanılmak üzere tasarlanmamıştır.

~MakeAllocator();

Açıklamalar

Sınıfın geçerli örneğini MakeAllocator başlatır.

Bu yıkıcı, gerekirse temel alınan ayrılan belleği de siler.