YSTest: ystdex::pmr::oversized_map类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Private 属性 | 所有成员列表
ystdex::pmr::oversized_map类 参考

超出池内分配的资源映射。 更多...

`#include <memory_resource.h>`

类 ystdex::pmr::oversized_map 继承关系图:
[图例]
ystdex::pmr::oversized_map 的协作图:
[图例]

## Public 类型

using | mapped_type = std::pair< size_t, size_t >
using | map_type = std::unordered_map< void *, mapped_type, std::hash< void * >, equal_to<>, polymorphic_allocator< std::pair< void *const, mapped_type > >>

## Public 成员函数

| oversized_map (memory_resource &mem_rsrc)
| ~oversized_map ()
memory_resource & | upstream ()
void * | allocate (size_t, size_t)
void | deallocate (void *, size_t, size_t)
void | release ()

## Private 属性

map_type | entries

## 额外继承的成员函数

Private 成员函数 继承自 ystdex::bases::noncopyable
| noncopyable (const noncopyable &)=delete
| 禁止复制构造。 更多...
| noncopyable (noncopyable &&)=default
| 允许转移构造。 更多...
noncopyable & | operator= (const noncopyable &)=delete
| 禁止复制赋值。 更多...
noncopyable & | operator= (noncopyable &&)=default
| 允许转移赋值。 更多...
| noncopyable ()=default
| `protected` 构造：默认实现。 更多...
| ~noncopyable ()=default
| `protected` 析构：默认实现。 更多...
Private 成员函数 继承自 ystdex::bases::nonmovable
| nonmovable (const nonmovable &)=default
| 允许复制构造。 更多...
| nonmovable (nonmovable &&)=delete
| 禁止转移构造。 更多...
nonmovable & | operator= (const nonmovable &)=default
| 允许复制赋值。 更多...
nonmovable & | operator= (nonmovable &&)=delete
| 禁止转移赋值。 更多...
| nonmovable ()=default
| `protected` 构造：默认实现。 更多...
| ~nonmovable ()=default
| `protected` 析构：默认实现。 更多...

## 详细描述

超出池内分配的资源映射。

警告
  非虚析构。

在文件 memory_resource.h 第 657 行定义.

## 成员类型定义说明

## ◆ map_type

using ystdex::pmr::oversized_map::map_type = std::unordered_map<void*, mapped_type, std::hash<void*>, equal_to<>, polymorphic_allocator<std::pair<void* const, mapped_type> >>

在文件 memory_resource.h 第 662 行定义.

## ◆ mapped_type

using ystdex::pmr::oversized_map::mapped_type = std::pair<size_t, size_t>

在文件 memory_resource.h 第 661 行定义.

## 构造及析构函数说明

## ◆ oversized_map()

ystdex::pmr::oversized_map::oversized_map | ( | memory_resource & | mem_rsrc | ) |

inline

在文件 memory_resource.h 第 670 行定义.

## ◆ ~oversized_map()

ystdex::pmr::oversized_map::~oversized_map | ( |  | ) |

在文件 memory_resource.cpp 第 361 行定义.

引用了 release().

函数调用图:

## 成员函数说明

## ◆ allocate()

void * ystdex::pmr::oversized_map::allocate | ( | size_t | bytes,
|  | size_t | alignment
| ) |  |

在文件 memory_resource.cpp 第 367 行定义.

引用了 alignment, ystdex::dismiss(), entries, platform::p, ystdex::unique_guard(), upstream() , 以及 ynothrow.

被这些函数引用 ystdex::pmr::pool_resource::do_allocate().

函数调用图:
这是这个函数的调用关系图:

## ◆ deallocate()

void ystdex::pmr::oversized_map::deallocate | ( | void * | p,
|  | size_t | bytes,
|  | size_t | alignment
| ) |  |

在文件 memory_resource.cpp 第 381 行定义.

引用了 alignment, YSLib::i, platform::p , 以及 YAssert.

## ◆ release()

void ystdex::pmr::oversized_map::release | ( |  | ) |

在文件 memory_resource.cpp 第 397 行定义.

引用了 entries , 以及 upstream().

被这些函数引用 ystdex::pmr::pool_resource::release() , 以及 ~oversized_map().

函数调用图:
这是这个函数的调用关系图:

## ◆ upstream()

memory_resource& ystdex::pmr::oversized_map::upstream | ( |  | ) |

inline

在文件 memory_resource.h 第 676 行定义.

引用了 yassume.

被这些函数引用 allocate() , 以及 release().

这是这个函数的调用关系图:

## 类成员变量说明

## ◆ entries

map_type ystdex::pmr::oversized_map::entries

private

在文件 memory_resource.h 第 667 行定义.

被这些函数引用 allocate() , 以及 release().

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

- memory_resource.h
- memory_resource.cpp