次の方法で共有


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 は、通常、オブジェクトが構築中にスローされた場合にメモリ リークを防ぐために使用されます。

メンバー

パブリック コンストラクター

名前 説明
MakeAllocator::MakeAllocator MakeAllocator クラスの新しいインスタンスを初期化します。
MakeAllocator::~MakeAllocator MakeAllocator クラスの現在のインスタンスの初期化を解除します。

パブリック メソッド

名前 説明
MakeAllocator::Allocate メモリを割り当て、現在の MakeAllocator オブジェクトに関連付けます。
MakeAllocator::Detach Allocate メソッドによって割り当てられたメモリと現在の MakeAllocator オブジェクトの関連付けを解除します。

継承階層

MakeAllocator

要件

ヘッダー: implements.h

名前空間: Microsoft::WRL::Details

MakeAllocator::Allocate

WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。

__forceinline void* Allocate();

戻り値

成功した場合は、割り当てられたメモリへのポインター。それ以外の場合は nullptr

解説

メモリを割り当て、現在の MakeAllocator オブジェクトに関連付けます。

割り当てられたメモリのサイズは、現在の MakeAllocator テンプレート パラメーターで指定された型のサイズです。

開発者は、別のメモリ割り当てモデルを実装するために Allocate() メソッドのみをオーバーライドする必要があります。

MakeAllocator::Detach

WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。

__forceinline void Detach();

解説

Allocate メソッドによって割り当てられたメモリと現在の MakeAllocator オブジェクトの関連付けを解除します。

Detach() を呼び出す場合は、Allocate メソッドによって提供されるメモリを削除する必要があります。

MakeAllocator::MakeAllocator

WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。

MakeAllocator();

解説

MakeAllocator クラスの新しいインスタンスを初期化します。

MakeAllocator::~MakeAllocator

WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。

~MakeAllocator();

解説

MakeAllocator クラスの現在のインスタンスの初期化を解除します。

このデストラクターは、必要に応じ基になる割り当てられたメモリも削除します。