STD_NEW
|
Table of Contents
|
STD_NEW(alloc, Type)
功能
- 该宏使用Allocator alloc实例分配所需的内存以创建Type类型的对象。类Type的构造函数将被调用。
alloc
- 参数alloc是一个Allocator实例。该Allocator要求支持以下concept:
class Allocator { public: void* allocate(size_t cb, FnDestructor fnDestroy); // Release版本调用这个 void* allocate(size_t cb, FnDestructor fnDestroy, const char* szFile, int nLine); // Debug版本会调用这个 };
Type
- 参数Type是指要new的对象的类型。
返回值
- 返回一个类型为Type*的对象实例。
举例
目前,可以应用STD_NEW的两个GC Allocator是AutoFreeAlloc和ScopeAlloc。两者在对STD_NEW的支持上并无任何差异。
AutoFreeAlloc
std::AutoFreeAlloc alloc; Type* obj = STD_NEW(alloc, Type); // 使用Type类型的默认构造函数 Type* objWithArg = STD_NEW(alloc, Type)(arg1, arg2, ...); // 使用Type(arg1, arg2, ...)构造函数
ScopeAlloc
std::BlockPool recycle; std::ScopeAlloc alloc(recycle); Type* obj = STD_NEW(alloc, Type); // 使用Type类型的默认构造函数 Type* objWithArg = STD_NEW(alloc, Type)(arg1, arg2, ...); // 使用Type(arg1, arg2, ...)构造函数
STD_NEW与MFC共存问题
- 参阅《STD_NEW与MFC共存问题》
相关参考
page_revision: 7, last_edited: 1202397906|%e %b %Y, %H:%M %Z (%O ago)





