NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
trace_allocator< T > 模板类 参考

内存追踪分配器 更多...

#include <trace_memory.hpp>

struct  rebind
 分配器绑定模板 更多...

Public 成员函数

 trace_allocator ()=default
 默认构造函数
 trace_allocator (const trace_allocator &other)
 拷贝构造函数
trace_allocatoroperator= (const trace_allocator &other)
 拷贝赋值运算符
 ~trace_allocator ()
 析构函数
void print_stacktrace () const
 打印所有未释放内存的调用栈
NEFORCE_NODISCARD NEFORCE_ALLOC_OPTIMIZE pointer allocate (const size_type n)
 分配内存
NEFORCE_NODISCARD NEFORCE_ALLOC_OPTIMIZE pointer allocate ()
 分配单个元素的内存
void deallocate (pointer p, const size_type n) noexcept
 释放内存
void deallocate (pointer p) noexcept
 释放单个元素的内存

详细描述

template<typename T>
class trace_allocator< T >

内存追踪分配器

模板参数
T分配的元素类型

提供内存分配追踪功能的分配器适配器。 在分配内存时记录调用栈,在释放内存时清除记录。 析构时检查是否有未释放的内存,并输出详细的泄漏信息。

在文件 trace_memory.hpp34 行定义.

构造及析构函数说明

◆ trace_allocator()

template<typename T>
trace_allocator< T >::trace_allocator ( const trace_allocator< T > & other)
inline

拷贝构造函数

参数
other源分配器

在文件 trace_memory.hpp71 行定义.

◆ ~trace_allocator()

template<typename T>
trace_allocator< T >::~trace_allocator ( )
inline

析构函数

检查是否存在未释放的内存,如果有则输出内存泄漏报告。

在文件 trace_memory.hpp92 行定义.

成员函数说明

◆ allocate() [1/2]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALLOC_OPTIMIZE pointer trace_allocator< T >::allocate ( )
inline

分配单个元素的内存

返回
指向分配内存的指针

分配一个T类型元素的内存,并记录当前调用栈。

在文件 trace_memory.hpp134 行定义.

被这些函数引用 trace_allocator< U >::allocate().

◆ allocate() [2/2]

template<typename T>
NEFORCE_NODISCARD NEFORCE_ALLOC_OPTIMIZE pointer trace_allocator< T >::allocate ( const size_type n)
inline

分配内存

参数
n要分配的元素数量
返回
指向分配内存的指针

分配n个T类型元素的内存,并记录当前调用栈。

在文件 trace_memory.hpp121 行定义.

◆ deallocate() [1/2]

template<typename T>
void trace_allocator< T >::deallocate ( pointer p)
inlinenoexcept

释放单个元素的内存

参数
p要释放的内存指针

释放由allocate()分配的单个元素内存。

在文件 trace_memory.hpp157 行定义.

被这些函数引用 trace_allocator< U >::deallocate().

◆ deallocate() [2/2]

template<typename T>
void trace_allocator< T >::deallocate ( pointer p,
const size_type n )
inlinenoexcept

释放内存

参数
p要释放的内存指针
n元素数量

释放由allocate分配的内存,并从追踪表中移除记录。

在文件 trace_memory.hpp143 行定义.

◆ operator=()

template<typename T>
trace_allocator & trace_allocator< T >::operator= ( const trace_allocator< T > & other)
inline

拷贝赋值运算符

参数
other源分配器
返回
自身引用

在文件 trace_memory.hpp79 行定义.

◆ print_stacktrace()

template<typename T>
void trace_allocator< T >::print_stacktrace ( ) const
inline

打印所有未释放内存的调用栈

遍历追踪表,输出每个泄漏指针的地址和分配时的调用栈。

在文件 trace_memory.hpp104 行定义.

被这些函数引用 trace_allocator< U >::~trace_allocator().


该类的文档由以下文件生成: