YSTest: ystdex::pmr::polymorphic_allocator< _type > 模板类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Private 属性 | 所有成员列表
ystdex::pmr::polymorphic_allocator< _type > 模板类 参考
YBase Replacement features

多态分配器。 更多...

`#include <memory_resource.h>`

ystdex::pmr::polymorphic_allocator< _type > 的协作图:
[图例]

## Public 类型

using | value_type = _type

## Public 成员函数

| polymorphic_allocator ()
| polymorphic_allocator (memory_resource *r)
| polymorphic_allocator (const polymorphic_allocator &other)=default
template<typename _tOther >
| polymorphic_allocator (const polymorphic_allocator< _tOther > &other)
polymorphic_allocator & | operator= (const polymorphic_allocator &)=delete
_type * | allocate (size_t n)
void | deallocate (_type *p, size_t n)
void * | allocate_bytes (size_t nbytes, size_t alignment=std::alignment_of< std::max_align_t >::value)
void | deallocate_bytes (void *p, size_t nbytes, size_t alignment=std::alignment_of< std::max_align_t >::value)
template<typename _tObj >
_tObj * | allocate_object (size_t n=1)
template<typename _tObj >
void | deallocate_object (_tObj *p, size_t n=1)
template<typename _tObj , typename... _tCtorParams>
_tObj * | new_object (_tCtorParams &&... ctor_args)
template<typename _tObj >
void | delete_object (_tObj *p)
template<typename _tObj , typename... _tParams>
void | construct (_tObj *p, _tParams &&... args)
polymorphic_allocator | select_on_container_copy_construction () const
memory_resource * | resource () const

## Private 属性

memory_resource * | memory_rsrc

## 详细描述

### template<class _type = byte>
class ystdex::pmr::polymorphic_allocator< _type >

多态分配器。

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

## 成员类型定义说明

## ◆ value_type

template<class _type = byte>

using ystdex::pmr::polymorphic_allocator< _type >::value_type = _type

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

## 构造及析构函数说明

## ◆ polymorphic_allocator() [1/4]

template<class _type = byte>

ystdex::pmr::polymorphic_allocator< _type >::polymorphic_allocator | ( |  | ) |

inline

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

## ◆ polymorphic_allocator() [2/4]

template<class _type = byte>

ystdex::pmr::polymorphic_allocator< _type >::polymorphic_allocator | ( | memory_resource * | r | ) |

inline

前置条件
  断言：参数指针非空。

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

引用了 YSLib::Drawing::r , 以及 yconstraint.

## ◆ polymorphic_allocator() [3/4]

template<class _type = byte>

ystdex::pmr::polymorphic_allocator< _type >::polymorphic_allocator | ( | const polymorphic_allocator< _type > & | other | ) |

default

## ◆ polymorphic_allocator() [4/4]

template<class _type = byte>
template<typename _tOther >

ystdex::pmr::polymorphic_allocator< _type >::polymorphic_allocator | ( | const polymorphic_allocator< _tOther > & | other | ) |

inline

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

## 成员函数说明

## ◆ allocate()

template<class _type = byte>

_type* ystdex::pmr::polymorphic_allocator< _type >::allocate | ( | size_t | n | ) |

inline

参见
  LWG 3038 。

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

引用了 ystdex::pmr::cpp2017::memory_resource::allocate(), ystdex::details::get_size_of_n(), ystdex::pmr::polymorphic_allocator< _type >::memory_rsrc , 以及 yalignof.

函数调用图:

## ◆ allocate_bytes()

template<class _type = byte>

void* ystdex::pmr::polymorphic_allocator< _type >::allocate_bytes | ( | size_t | nbytes,
|  | size_t | alignment = `std::alignment_of< std::max_align_t >::value`
| ) |  |

inline

参见
  WG21 P0339R6 。

自从
  build 863

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

引用了 alignment, ystdex::pmr::cpp2017::memory_resource::allocate() , 以及 ystdex::pmr::polymorphic_allocator< _type >::memory_rsrc.

被这些函数引用 ystdex::pmr::polymorphic_allocator< _type >::allocate_object().

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

## ◆ allocate_object()

template<class _type = byte>
template<typename _tObj >

_tObj* ystdex::pmr::polymorphic_allocator< _type >::allocate_object | ( | size_t | n = `1` | ) |

inline

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

引用了 ystdex::pmr::polymorphic_allocator< _type >::allocate_bytes() , 以及 yalignof.

函数调用图:

## ◆ construct()

template<class _type = byte>
template<typename _tObj , typename... _tParams>

void ystdex::pmr::polymorphic_allocator< _type >::construct | ( | _tObj * | p,
|  | _tParams &&... | args
| ) |  |

inline

参见
  WG21 P0591R4 。

自从
  build 850

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

引用了 CHRLib::args, platform::p, ystdex::uninitialized_construct_using_allocator() , 以及 yforward.

被这些函数引用 ystdex::pmr::polymorphic_allocator< _type >::new_object().

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

## ◆ deallocate()

template<class _type = byte>

void ystdex::pmr::polymorphic_allocator< _type >::deallocate | ( | _type * | p,
|  | size_t | n
| ) |  |

inline

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

引用了 ystdex::pmr::cpp2017::memory_resource::deallocate(), ystdex::details::get_size_of_n(), ystdex::pmr::polymorphic_allocator< _type >::memory_rsrc, platform::p , 以及 yalignof.

函数调用图:

## ◆ deallocate_bytes()

template<class _type = byte>

void ystdex::pmr::polymorphic_allocator< _type >::deallocate_bytes | ( | void * | p,
|  | size_t | nbytes,
|  | size_t | alignment = `std::alignment_of< std::max_align_t >::value`
| ) |  |

inline

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

引用了 alignment, ystdex::pmr::cpp2017::memory_resource::deallocate(), ystdex::pmr::polymorphic_allocator< _type >::memory_rsrc , 以及 platform::p.

被这些函数引用 ystdex::pmr::polymorphic_allocator< _type >::deallocate_object().

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

## ◆ deallocate_object()

template<class _type = byte>
template<typename _tObj >

void ystdex::pmr::polymorphic_allocator< _type >::deallocate_object | ( | _tObj * | p,
|  | size_t | n = `1`
| ) |  |

inline

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

引用了 ystdex::pmr::polymorphic_allocator< _type >::deallocate_bytes(), platform::p , 以及 yalignof.

被这些函数引用 ystdex::pmr::polymorphic_allocator< _type >::delete_object() , 以及 ystdex::pmr::polymorphic_allocator< _type >::new_object().

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

## ◆ delete_object()

template<class _type = byte>
template<typename _tObj >

void ystdex::pmr::polymorphic_allocator< _type >::delete_object | ( | _tObj * | p | ) |

inline

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

引用了 ystdex::pmr::polymorphic_allocator< _type >::deallocate_object(), ystdex::cpp2017::destroy() , 以及 platform::p.

函数调用图:

## ◆ new_object()

template<class _type = byte>
template<typename _tObj , typename... _tCtorParams>

_tObj* ystdex::pmr::polymorphic_allocator< _type >::new_object | ( | _tCtorParams &&... | ctor_args | ) |

inline

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

引用了 ystdex::pmr::polymorphic_allocator< _type >::construct(), ystdex::pmr::polymorphic_allocator< _type >::deallocate_object(), platform::p , 以及 yforward.

函数调用图:

## ◆ operator=()

template<class _type = byte>

polymorphic_allocator& ystdex::pmr::polymorphic_allocator< _type >::operator= | ( | const polymorphic_allocator< _type > & |  | ) |

delete

自从
  build 843

## ◆ resource()

template<class _type = byte>

memory_resource* ystdex::pmr::polymorphic_allocator< _type >::resource | ( |  | ) | const

inline

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

引用了 ystdex::pmr::polymorphic_allocator< _type >::memory_rsrc.

## ◆ select_on_container_copy_construction()

template<class _type = byte>

polymorphic_allocator ystdex::pmr::polymorphic_allocator< _type >::select_on_container_copy_construction | ( |  | ) | const

inline

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

## 类成员变量说明

## ◆ memory_rsrc

template<class _type = byte>

memory_resource* ystdex::pmr::polymorphic_allocator< _type >::memory_rsrc

private

不变性
  `memory_rsrc` 。

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

被这些函数引用 ystdex::pmr::polymorphic_allocator< _type >::allocate(), ystdex::pmr::polymorphic_allocator< _type >::allocate_bytes(), ystdex::pmr::polymorphic_allocator< _type >::deallocate(), ystdex::pmr::polymorphic_allocator< _type >::deallocate_bytes() , 以及 ystdex::pmr::polymorphic_allocator< _type >::resource().

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

- memory_resource.h