YSTest: memory_resource.h 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 命名空间 | 宏定义 | 类型定义 | 函数
memory_resource.h 文件参考
YBaseLib » YStandardExtend

存储资源。 更多...

`#include "memory.hpp"`
`#include <tuple>`
`#include "operators.hpp"`
`#include "base.h"`
`#include "cstdint.hpp"`
`#include "list.hpp"`
`#include <vector>`
`#include <unordered_map>`
`#include "algorithm.hpp"`
`#include <mutex>`
`#include "type_pun.hpp"`
memory_resource.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

class | ystdex::pmr::cpp2017::memory_resource
| 存储资源。 更多...
class | ystdex::pmr::polymorphic_allocator< _type >
| 多态分配器。 更多...
struct | ystdex::pmr::cpp2017::pool_options
class | ystdex::pmr::resource_pool
| 资源池。 更多...
struct | ystdex::pmr::resource_pool::block_meta_t
| 保存在块末尾的元数据类型。 更多...
class | ystdex::pmr::oversized_map
| 超出池内分配的资源映射。 更多...
class | ystdex::pmr::pool_resource
| 池资源。 更多...
class | ystdex::pmr::cpp2017::synchronized_pool_resource
class | ystdex::pmr::cpp2017::monotonic_buffer_resource

## 命名空间

| ystdex
| `<memory>` 特性测试宏。
| ystdex::details
| ystdex::pmr
| ystdex::pmr::cpp2017

## 宏定义

#define | YB_Impl_P0339R6 false
#define | YB_Impl_mutex_ns std

## 类型定义

using | ystdex::pmr::cpp2017::unsynchronized_pool_resource = pool_resource

## 函数

template<size_t _vSize>
size_t | ystdex::details::get_size_of_n (size_t n)
template<>
size_t | ystdex::details::get_size_of_n< 1 > (size_t n)
memory_resource * | ystdex::pmr::cpp2017::get_default_resource ()
template<typename _type1 , typename _type2 >
bool | ystdex::pmr::operator== (const polymorphic_allocator< _type1 > &a, const polymorphic_allocator< _type2 > &b)
template<typename _type1 , typename _type2 >
bool | ystdex::pmr::operator!= (const polymorphic_allocator< _type1 > &a, const polymorphic_allocator< _type2 > &b)
memory_resource * | ystdex::pmr::cpp2017::new_delete_resource ()
memory_resource * | ystdex::pmr::cpp2017::null_memory_resource ()
memory_resource * | ystdex::pmr::cpp2017::set_default_resource (memory_resource *)
void | ystdex::pmr::adjust_pool_options (pool_options &)
| 修改池选项的默认值。 更多...

## 详细描述

存储资源。

版本
  r1442

作者
  FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com

自从
  build 842

创建时间:
  2018-10-27 19:30:12 +0800

修改时间:
  2020-04-06 10:39 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::MemoryResource

提供 ISO C++17 标准库头 `<memory_resource>` 兼容的替代接口和实现。 除了部分关系操作使用 operators 实现而不保留命名空间内的声明及散列支持提供偏特化外， 其它接口同 std::pmr 中的对应接口。 注意因为一些兼容问题， std::experimental::pmr 中的接口不被可选地使用， 即使其可用性仍然会被检查。 和原始的 std::experimental::pmr 中提供的接口及其实现有以下不同： LWG 2724 ：纯虚函数为 private 而不是 protected 。 LWG 2843 ：成员 do_allocate 对不支持的对齐值直接抛出异常而非回退 std::max_align 。 WG21 P0337R0 ：polymorphic_allocator 的默认 operator= 定义为 = delete 。 包括以下已有其它实现支持的 ISO C++17 后的修改： LWG 2961 ：不需要考虑无法实现的后置条件。 LWG 2969 ：明确 polymorphic_allocator 的 construct 函数模板使用 *this 而不是 memory_resource 进行构造。 LWG 2975 ：明确 polymorphic_allocator 的 construct 函数模板排除对第一参数为 pair 实例的指针类型时的重载。 LWG 3000 ：存储资源类的 do_is_equal 的实现没有冗余的 dynamic_cast 。 LWG 3036 ：删除 polymorphic_allocator 的 destroy 函数模板， 因为 allocator_traits 已提供实现。 LWG 3037 : 明确 polymorphic_allocator 支持不完整的值类型。 LWG 3038 ：在 polymorphic_allocator 的 allocate 函数处理整数溢出。 LWG 3113 ：明确 polymorphic_allocator 的 construct 函数模板转移构造的元组值。 包含以下 ISO C++17 后的修改： WG21 P0339R6 ：支持 polymorphic_allocator 的 byte 默认模板参数和对象分配函数模板。 WG21 P0591R4 ：在 polymorphic_allocator 中支持递归构造 std::pair 。 WG21 P0619R4 ：在 memory_resource 中显式声明默认构造函数和复制构造函数。

在文件 memory_resource.h 中定义.

## 宏定义说明

## ◆ YB_Impl_mutex_ns

#define YB_Impl_mutex_ns std

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

## ◆ YB_Impl_P0339R6

#define YB_Impl_P0339R6 false

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