YSTest: YSLib::AllocatorHolder< _type, _tByteAlloc > 模板类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Private 类型 | 所有成员列表
YSLib::AllocatorHolder< _type, _tByteAlloc > 模板类 参考

在复制初始化时传播分配器的值持有者。 更多...

`#include <YObject.h>`

类 YSLib::AllocatorHolder< _type, _tByteAlloc > 继承关系图:
[图例]
YSLib::AllocatorHolder< _type, _tByteAlloc > 的协作图:
[图例]

## Public 类型

using | Creation = IValueHolder::Creation
using | value_type = _type
Public 类型 继承自 YSLib::ValueHolder< _type >
using | value_type = _type

## Public 成员函数

template<typename... _tParams, yimpl(typename=ystdex::exclude_self_params_t< AllocatorHolder, _tParams... >, typename=ystdex::enable_if_t< std::is_constructible< _type, _tParams... >::value >) >
| AllocatorHolder (_tParams &&... args)
| DefDeCopyMoveCtorAssignment (AllocatorHolder) YB_ATTR_nodiscard any Create(Creation c
const any &x const | ImplI (IValueHolder)
template<class _tObj = _type, typename = ystdex::enable_if_t< ystdex::has_get_allocator<_tObj>::value>>
YB_ATTR_nodiscard YB_PURE auto | get_allocator () const ynothrow -> decltype(std::declval< const _tObj & >().get_allocator())
Public 成员函数 继承自 YSLib::ValueHolder< _type >
| DefDeCtor (ValueHolder) template< typename _tParam
| yimpl (typename=ystdex::exclude_self_t< ValueHolder, _tParam >, typename=ystdex::enable_if_t< std::is_constructible< _type, _tParam >::value >)> inline ValueHolder(_tParam &&arg) ynoexcept(std
| DefDeCopyMoveCtorAssignment (ValueHolder) YB_ATTR_nodiscard PDefH(any
Creation const any &const | ImplI (IValueHolder) ImplRet(CreateHolder(c
Creation const any &const this value YB_ATTR_nodiscard YB_PURE | PDefH (bool, Equals, const void *p) const ImplI(IValueHolder) ImplRet(bool(p) &&AreEqualHeld(this -> value, Deref(static_cast< const value_type * >(p)))) YB_ATTR_nodiscard YB_PURE PDefH(size_t, OwnsCount,) const ynothrow ImplI(IValueHolder) ImplRet(1) YB_ATTR_nodiscard YB_PURE PDefH(any, Query, uintmax_t) const ynothrow ImplI(IValueHolder) ImplRet(

## Private 类型

using | base = ValueHolder< value_type >

## 额外继承的成员函数

Public 属性 继承自 YSLib::ValueHolder< _type >
| Create
Creation | c
Protected 类型 继承自 ystdex::boxed_value< _type >
using | nothrow_default_constructible = details::is_nt_dc< _type >
Protected 成员函数 继承自 ystdex::boxed_value< _type >
template<typename _tParam = _type, typename = enable_if_t<is_constructible<_tParam>::value>>
| boxed_value ()
template<typename _tParam = _type, typename = enable_if_t<is_constructible<_tParam>::value>>
| boxed_value (default_init_t)
template<typename... _tParams, typename = exclude_self_params_t<boxed_value, _tParams...>, typename = enable_if_t<is_constructible<_type, _tParams...>::value>>
| boxed_value (_tParams &&... args)
| boxed_value (const boxed_value &)=default
| boxed_value (boxed_value &&)=default
boxed_value & | operator= (const boxed_value &)=default
boxed_value & | operator= (boxed_value &&)=default
| operator _type & ()
| operator const _type & () const
Protected 属性 继承自 ystdex::boxed_value< _type >
_type | value

## 详细描述

### template<typename _type, class _tByteAlloc>
class YSLib::AllocatorHolder< _type, _tByteAlloc >

在复制初始化时传播分配器的值持有者。

注解
  分配器通过配合 any::allocated_holder_handler_t 被使用。
  分配器传播需动态取得未知类型的值而影响性能。
  一般配合使用 uses-allocator 构造的存储的值类型。
  模板参数指定值类型和分配器。

自从
  build 867

在文件 YObject.h 第 671 行定义.

## 成员类型定义说明

## ◆ base

template<typename _type , class _tByteAlloc >

using YSLib::AllocatorHolder< _type, _tByteAlloc >::base = ValueHolder<value_type>

private

在文件 YObject.h 第 687 行定义.

## ◆ Creation

template<typename _type , class _tByteAlloc >

using YSLib::AllocatorHolder< _type, _tByteAlloc >::Creation = IValueHolder::Creation

自从
  build 867
  build 867
  build 864

在文件 YObject.h 第 682 行定义.

## ◆ value_type

template<typename _type , class _tByteAlloc >

using YSLib::AllocatorHolder< _type, _tByteAlloc >::value_type = _type

自从
  build 847

在文件 YObject.h 第 684 行定义.

## 构造及析构函数说明

## ◆ AllocatorHolder()

template<typename _type , class _tByteAlloc >
template<typename... _tParams, yimpl(typename=ystdex::exclude_self_params_t< AllocatorHolder, _tParams... >, typename=ystdex::enable_if_t< std::is_constructible< _type, _tParams... >::value >) >

YSLib::AllocatorHolder< _type, _tByteAlloc >::AllocatorHolder | ( | _tParams &&... | args | ) |

inline

在文件 YObject.h 第 698 行定义.

## 成员函数说明

## ◆ DefDeCopyMoveCtorAssignment()

template<typename _type , class _tByteAlloc >

YSLib::AllocatorHolder< _type, _tByteAlloc >::DefDeCopyMoveCtorAssignment | ( | AllocatorHolder< _type, _tByteAlloc > |  | ) |

自从
  build 848
  build 864

## ◆ get_allocator()

template<typename _type , class _tByteAlloc >
template<class _tObj = _type, typename = ystdex::enable_if_t< ystdex::has_get_allocator<_tObj>::value>>

YB_ATTR_nodiscard YB_PURE auto YSLib::AllocatorHolder< _type, _tByteAlloc >::get_allocator | ( |  | ) | const -> decltype(std::declval<const _tObj&>().get_allocator())

inline

自从
  build 891

在文件 YObject.h 第 718 行定义.

## ◆ ImplI()

template<typename _type , class _tByteAlloc >

const any& x const YSLib::AllocatorHolder< _type, _tByteAlloc >::ImplI | ( | IValueHolder |  | ) |

inline

在文件 YObject.h 第 707 行定义.

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

- YObject.h