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 取消关联当前 MakeAllocator 对象中由 Allocate 方法分配的内存。

继承层次结构

MakeAllocator

要求

标头:implements.h

命名空间:Microsoft::WRL::Details

MakeAllocator::Allocate

支持 WRL 基础结构,不应在代码中直接使用。

__forceinline void* Allocate();

返回值

如果成功,则为指向已分配内存的指针;否则,为 nullptr

备注

分配内存并将其与当前 MakeAllocator 对象关联。

已分配内存的大小是当前 MakeAllocator 模板参数指定的类型的大小。

开发人员只需重写 Allocate() 方法,即可实现其他内存分配模型。

MakeAllocator::Detach

支持 WRL 基础结构,不应在代码中直接使用。

__forceinline void Detach();

注解

取消关联当前 MakeAllocator 对象中由 Allocate 方法分配的内存。

如果调用 Detach(),则需要删除 Allocate 方法提供的内存。

MakeAllocator::MakeAllocator

支持 WRL 基础结构,不应在代码中直接使用。

MakeAllocator();

备注

初始化 MakeAllocator 类的新实例。

MakeAllocator::~MakeAllocator

支持 WRL 基础结构,不应在代码中直接使用。

~MakeAllocator();

备注

取消初始化 MakeAllocator 类的当前实例。

此析构函数还可删除基础的已分配内存(如有必要)。