跳转至内容

更多 C++ 习语/自由函数分配器

来自 Wikibooks,开放世界开放书籍

自由函数分配器

[编辑 | 编辑源代码]

允许容器使用自定义分配器,而无需创建新的类型

C++ 标准分配器存在严重问题,因为它们会更改容器的底层类型。

解决方案和示例代码

[编辑 | 编辑源代码]

这种习语优于 std::分配器的工作方式,整个习语在此概述。

struct user_allocator_nedmalloc
{
	typedef std::size_t size_type;
	typedef std::ptrdiff_t difference_type;
	
	static inline char* malloc(const size_type bytes) {
		return reinterpret_cast<char*>(nedmalloc(bytes));
	}
	
	static inline void free(char* const block) {
		nedfree(block);
	}
};

已知用法

[编辑 | 编辑源代码]
  • boost::ptr_container
[编辑 | 编辑源代码]

参考文献

[编辑 | 编辑源代码]
华夏公益教科书