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
类的当前实例。
此析构函数还可删除基础的已分配内存(如有必要)。