YSTest: YSLib::HolderOperations< _tHolder > 模板结构体 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | Public 类型 | 静态 Public 成员函数 | 静态 Private 成员函数 | 所有成员列表
YSLib::HolderOperations< _tHolder > 模板结构体 参考

持有者操作。 更多...

`#include <YObject.h>`

## 类

struct | CreateInPlaceFunctor

## Public 类型

using | Creation = IValueHolder::Creation

## 静态 Public 成员函数

template<typename... _tParams, yimpl(typename=ystdex::exclude_tagged_params_t< _tParams... >) >
static YB_ATTR_nodiscard any | CreateInPlace (_tParams &&... args)
template<class _tAlloc , typename... _tParams>
static YB_ATTR_nodiscard any | CreateInPlace (std::allocator_arg_t, const _tAlloc &a, _tParams &&... args)
template<typename... _tParams>
YB_ATTR_nodiscard static YB_NORETURN any | CreateInPlaceConditionally (ystdex::false_, _tParams &&...)
template<class _tAlloc , typename... _tParams>
YB_ATTR_nodiscard static YB_NORETURN any | CreateInPlaceConditionally (std::allocator_arg_t, const _tAlloc &, ystdex::false_, _tParams &&...)
template<typename... _tParams>
static YB_ATTR_nodiscard any | CreateInPlaceConditionally (ystdex::true_, _tParams &&... args)
template<class _tAlloc , typename... _tParams>
static YB_ATTR_nodiscard any | CreateInPlaceConditionally (std::allocator_arg_t, const _tAlloc &a, ystdex::true_, _tParams &&... args)
template<typename _tValue , class _tCopyParams , class _tMoveParams >
YB_ATTR_nodiscard static YB_PURE any | CreateHolder (Creation c, _tValue &val, _tCopyParams &&args_copy, _tMoveParams &&args_move)

## 静态 Private 成员函数

template<typename... _tParams>
static YB_ATTR_nodiscard auto | CreateInPlaceImpl (nullptr_t, _tParams &&... args) -> decltype(any(any_ops::use_holder, in_place_type< _tHolder >, yforward(args)...))
template<typename... _tParams>
YB_ATTR_nodiscard static YB_NORETURN any | CreateInPlaceImpl (void *, _tParams &&...)
template<class _tAlloc , typename... _tParams>
static YB_ATTR_nodiscard auto | CreateInPlaceWithAllocatorImpl (nullptr_t, const _tAlloc &a, _tParams &&... args) -> decltype(any(std::allocator_arg, a, any_ops::use_holder, in_place_type< _tHolder >, yforward(args)...))
template<typename... _tParams>
YB_ATTR_nodiscard static YB_NORETURN any | CreateInPlaceWithAllocatorImpl (void *, _tParams &&...)

## 详细描述

### template<class _tHolder>
struct YSLib::HolderOperations< _tHolder >

持有者操作。

自从
  build 850

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

## 成员类型定义说明

## ◆ Creation

template<class _tHolder >

using YSLib::HolderOperations< _tHolder >::Creation = IValueHolder::Creation

自从
  build 899

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

## 成员函数说明

## ◆ CreateHolder()

template<class _tHolder >
template<typename _tValue , class _tCopyParams , class _tMoveParams >

YB_ATTR_nodiscard static YB_PURE any YSLib::HolderOperations< _tHolder >::CreateHolder | ( | Creation | c,
|  | _tValue & | val,
|  | _tCopyParams && | args_copy,
|  | _tMoveParams && | args_move
| ) |  |

inlinestatic

自从
  build 899

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

引用了 ystdex::cpp2017::apply(), CHRLib::c, YSLib::UI::Move , 以及 yforward.

函数调用图:

## ◆ CreateInPlace() [1/2]

template<class _tHolder >
template<typename... _tParams, yimpl(typename=ystdex::exclude_tagged_params_t< _tParams... >) >

static YB_ATTR_nodiscard any YSLib::HolderOperations< _tHolder >::CreateInPlace | ( | _tParams &&... | args | ) |

inlinestatic

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

引用了 YSLib::args, YSLib::HolderOperations< _tHolder >::CreateInPlaceImpl() , 以及 yforward.

被这些函数引用 YSLib::HolderOperations< _tHolder >::CreateInPlaceFunctor::operator()() , 以及 YSLib::AllocatedHolderOperations< _tHolder, _tByteAlloc >::CreateInPlaceFunctor::operator()().

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

## ◆ CreateInPlace() [2/2]

template<class _tHolder >
template<class _tAlloc , typename... _tParams>

static YB_ATTR_nodiscard any YSLib::HolderOperations< _tHolder >::CreateInPlace | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | _tParams &&... | args
| ) |  |

inlinestatic

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

引用了 YSLib::a, YSLib::args, YSLib::HolderOperations< _tHolder >::CreateInPlaceWithAllocatorImpl() , 以及 yforward.

函数调用图:

## ◆ CreateInPlaceConditionally() [1/4]

template<class _tHolder >
template<class _tAlloc , typename... _tParams>

YB_ATTR_nodiscard static YB_NORETURN any YSLib::HolderOperations< _tHolder >::CreateInPlaceConditionally | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | ,
|  | ystdex::false_ | ,
|  | _tParams && | ...
| ) |  |

inlinestatic

自从
  build 848

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

引用了 ystdex::throw_invalid_construction().

函数调用图:

## ◆ CreateInPlaceConditionally() [2/4]

template<class _tHolder >
template<class _tAlloc , typename... _tParams>

static YB_ATTR_nodiscard any YSLib::HolderOperations< _tHolder >::CreateInPlaceConditionally | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | ystdex::true_ | ,
|  | _tParams &&... | args
| ) |  |

inlinestatic

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

引用了 YSLib::a, YSLib::args, ystdex::any_ops::use_holder , 以及 yforward.

## ◆ CreateInPlaceConditionally() [3/4]

template<class _tHolder >
template<typename... _tParams>

YB_ATTR_nodiscard static YB_NORETURN any YSLib::HolderOperations< _tHolder >::CreateInPlaceConditionally | ( | ystdex::false_ | ,
|  | _tParams && | ...
| ) |  |

inlinestatic

注解
  ystdex::false_ 或 ystdex::true_ 指定的选项创建持有者或抛出异常。

异常

  ystdex::invalid_construction | 参数类型无法用于初始化持有者。

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

引用了 ystdex::throw_invalid_construction().

被这些函数引用 YSLib::PointerHolder< _type, _tTraits >::Create().

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

## ◆ CreateInPlaceConditionally() [4/4]

template<class _tHolder >
template<typename... _tParams>

static YB_ATTR_nodiscard any YSLib::HolderOperations< _tHolder >::CreateInPlaceConditionally | ( | ystdex::true_ | ,
|  | _tParams &&... | args
| ) |  |

inlinestatic

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

引用了 YSLib::args, ystdex::any_ops::use_holder , 以及 yforward.

## ◆ CreateInPlaceImpl() [1/2]

template<class _tHolder >
template<typename... _tParams>

static YB_ATTR_nodiscard auto YSLib::HolderOperations< _tHolder >::CreateInPlaceImpl | ( | nullptr_t | ,
|  | _tParams &&... | args
| ) |  | -> decltype(any(any_ops::use_holder, in_place_type<_tHolder>, yforward(args)...))

inlinestaticprivate

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

引用了 YSLib::args, ystdex::any_ops::use_holder , 以及 yforward.

被这些函数引用 YSLib::HolderOperations< _tHolder >::CreateInPlace().

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

## ◆ CreateInPlaceImpl() [2/2]

template<class _tHolder >
template<typename... _tParams>

YB_ATTR_nodiscard static YB_NORETURN any YSLib::HolderOperations< _tHolder >::CreateInPlaceImpl | ( | void * | ,
|  | _tParams && | ...
| ) |  |

inlinestaticprivate

自从
  build 851

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

引用了 ystdex::throw_invalid_construction().

函数调用图:

## ◆ CreateInPlaceWithAllocatorImpl() [1/2]

template<class _tHolder >
template<class _tAlloc , typename... _tParams>

static YB_ATTR_nodiscard auto YSLib::HolderOperations< _tHolder >::CreateInPlaceWithAllocatorImpl | ( | nullptr_t | ,
|  | const _tAlloc & | a,
|  | _tParams &&... | args
| ) |  | -> decltype(any(std::allocator_arg, a, any_ops::use_holder, in_place_type<_tHolder>, yforward(args)...))

inlinestaticprivate

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

引用了 YSLib::a, YSLib::args, ystdex::any_ops::use_holder , 以及 yforward.

被这些函数引用 YSLib::HolderOperations< _tHolder >::CreateInPlace().

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

## ◆ CreateInPlaceWithAllocatorImpl() [2/2]

template<class _tHolder >
template<typename... _tParams>

YB_ATTR_nodiscard static YB_NORETURN any YSLib::HolderOperations< _tHolder >::CreateInPlaceWithAllocatorImpl | ( | void * | ,
|  | _tParams && | ...
| ) |  |

inlinestaticprivate

自从
  build 851

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

引用了 ystdex::throw_invalid_construction().

函数调用图:

该结构体的文档由以下文件生成:

- YObject.h