YSTest: ystdex::standard_layout_storage< _tUnderlying > 模板结构体 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 类型 | Public 成员函数 | Public 属性 | 所有成员列表
ystdex::standard_layout_storage< _tUnderlying > 模板结构体 参考

任意标准布局类型对象提供空间的存储。 更多...

`#include <type_pun.hpp>`

类 ystdex::standard_layout_storage< _tUnderlying > 继承关系图:
[图例]
ystdex::standard_layout_storage< _tUnderlying > 的协作图:
[图例]

## Public 类型

using | underlying = _tUnderlying

## Public 成员函数

| standard_layout_storage ()=default
| standard_layout_storage (const standard_layout_storage &)=default
standard_layout_storage & | operator= (const standard_layout_storage &)=default
template<typename _type , typename = exclude_self_t<standard_layout_storage, _type>>
standard_layout_storage & | operator= (_type &&x)
void * | access ()
const void * | access () const
byte * | data ()
const byte * | data () const
template<typename _type >
void | assign (_type &&x)
template<typename _type >
_type & | access ()
template<typename _type >
const _type & | access () const
template<typename _type , typename... _tParams>
_type * | construct (_tParams &&...args)
template<typename _type >
void | destroy ()
template<typename _type , typename... _tParams>
pun_ptr< _type > | pun (_tParams &&...args)
template<typename _type , typename... _tParams>
pun_ptr< _type > | pun_default ()

## Public 属性

underlying | object

## 详细描述

### template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
struct ystdex::standard_layout_storage< _tUnderlying >

任意标准布局类型对象提供空间的存储。

注解
  可能储存类型非标准布局类型对象。

参见
  WG21 N4606 3.8[basic.life] 。

警告
  应注意避免违反对象生存期规则。

自从
  build 692

在文件 type_pun.hpp 第 307 行定义.

## 成员类型定义说明

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

using ystdex::standard_layout_storage< _tUnderlying >::underlying = _tUnderlying

在文件 type_pun.hpp 第 312 行定义.

## 构造及析构函数说明

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

ystdex::standard_layout_storage< _tUnderlying >::standard_layout_storage | ( |  | ) |

default

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

ystdex::standard_layout_storage< _tUnderlying >::standard_layout_storage | ( | const standard_layout_storage< _tUnderlying > & |  | ) |

default

## 成员函数说明

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

void* ystdex::standard_layout_storage< _tUnderlying >::access | ( |  | ) |

inline

在文件 type_pun.hpp 第 335 行定义.

参考自 ystdex::standard_layout_storage< _type >::access(), ystdex::standard_layout_storage< _type >::data(), ystdex::standard_layout_storage< _type >::destroy(), ystdex::any_ops::value_handler< _tHolder >::get_pointer_impl(), ystdex::any_ops::value_handler< _tHolder >::get_reference_impl(), ystdex::any_ops::iterator_handler< _type, _tReference >::manage() , 以及 ystdex::any_ops::input_iterator_handler< _type, _tReference >::manage().

这是这个函数的调用关系图:
template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

const void* ystdex::standard_layout_storage< _tUnderlying >::access | ( |  | ) | const

inline

在文件 type_pun.hpp 第 340 行定义.

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type >

_type& ystdex::standard_layout_storage< _tUnderlying >::access | ( |  | ) |

inline

警告
  应注意避免违反严格别名分析规则。

在文件 type_pun.hpp 第 348 行定义.

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type >

const _type& ystdex::standard_layout_storage< _tUnderlying >::access | ( |  | ) | const

inline

在文件 type_pun.hpp 第 357 行定义.

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type >

void ystdex::standard_layout_storage< _tUnderlying >::assign | ( | _type && | x | ) |

inline

前置条件
  指定类型的对象已通过 construct 或构造模板创建。

自从
  build 503

在文件 type_pun.hpp 第 421 行定义.

参考自 ystdex::standard_layout_storage< _type >::operator=().

这是这个函数的调用关系图:
template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type , typename... _tParams>

_type* ystdex::standard_layout_storage< _tUnderlying >::construct | ( | _tParams &&... | args | ) |

inline

自从
  build 716

前置条件
  对象未通过 construct 或构造模板创建。

在文件 type_pun.hpp 第 371 行定义.

参考自 ystdex::any_ops::holder_handler< _tHolder >::init().

这是这个函数的调用关系图:
template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

byte* ystdex::standard_layout_storage< _tUnderlying >::data | ( |  | ) |

inline

在文件 type_pun.hpp 第 405 行定义.

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

const byte* ystdex::standard_layout_storage< _tUnderlying >::data | ( |  | ) | const

inline

在文件 type_pun.hpp 第 410 行定义.

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type >

void ystdex::standard_layout_storage< _tUnderlying >::destroy | ( |  | ) |

inline

前置条件
  指定类型的对象已通过 construct 或构造模板创建。

在文件 type_pun.hpp 第 380 行定义.

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

standard_layout_storage& ystdex::standard_layout_storage< _tUnderlying >::operator= | ( | const standard_layout_storage< _tUnderlying > & |  | ) |

default

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type , typename = exclude_self_t<standard_layout_storage, _type>>

standard_layout_storage& ystdex::standard_layout_storage< _tUnderlying >::operator= | ( | _type && | x | ) |

inline

注解
  为避免类型错误，需要确定类型时应使用显式使用 access 指定类型赋值。

自从
  build 454

在文件 type_pun.hpp 第 328 行定义.

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type , typename... _tParams>

pun_ptr<_type> ystdex::standard_layout_storage< _tUnderlying >::pun | ( | _tParams &&... | args | ) |

inline

前置条件
  对象未通过 construct 或构造模板创建。

在文件 type_pun.hpp 第 389 行定义.

参考自 ystdex::any_input_iterator< _type, _tDifference, _tPointer, _tReference >::operator*() , 以及 ystdex::details::any_base::unchecked_access().

这是这个函数的调用关系图:
template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>
template<typename _type , typename... _tParams>

pun_ptr<_type> ystdex::standard_layout_storage< _tUnderlying >::pun_default | ( |  | ) |

inline

自从
  build 717

在文件 type_pun.hpp 第 397 行定义.

参考自 ystdex::details::any_base::unchecked_access().

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

## 类成员变量说明

template<typename _tUnderlying = aligned_storage_t<sizeof(void*)>>

underlying ystdex::standard_layout_storage< _tUnderlying >::object

在文件 type_pun.hpp 第 314 行定义.

参考自 ystdex::standard_layout_storage< _type >::access(), ystdex::standard_layout_storage< _type >::construct(), ystdex::standard_layout_storage< _type >::pun() , 以及 ystdex::standard_layout_storage< _type >::pun_default().

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

- type_pun.hpp