YSTest: type_pun.hpp 文件参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

- 文件列表
- 文件成员

类 | 命名空间 | 类型定义
type_pun.hpp 文件参考
YBaseLib » YStandardExtend

共享存储和直接转换。 更多...

`#include "type_traits.hpp"`
`#include <new>`
type_pun.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

struct | ystdex::is_aligned_compatible< _type, _type2 >
| 判断是否对齐兼容。 更多...
struct | ystdex::is_aligned_placeable< _type, _tDst >
| 判断是否可原地对齐存储。 更多...
struct | ystdex::is_aligned_storable< _type, _tDst >
| 判断是否可对齐存储。 更多...
struct | ystdex::is_aligned_replaceable< _type, _tDst >
| 判断是否可替换对齐存储。 更多...
struct | ystdex::is_trivially_replaceable< _type, _tDst >
| 判断是否可平凡替换存储。 更多...
struct | ystdex::standard_layout_storage< _tUnderlying >
| 任意标准布局类型存储。 更多...

## 命名空间

| ystdex
| <functional> 特性测试宏。

## 类型定义

template<typename _tSrc , typename _tDst , typename _type = void>
using | ystdex::enable_if_replaceable_t = enable_if_t< is_trivially_replaceable< _tSrc, _tDst >::value, _type >
| 选择和特定类型可替换字符类类型的特定重载以避免冲突。 更多...
template<typename _type , size_t _vAlign = std::alignment_of< _type >::value>
using | ystdex::pun_storage_t = aligned_storage_t< sizeof(_type), _vAlign >
| 显式转换的替代对齐存储对齐存储类型。 更多...
template<typename _type , size_t _vAlign = std::alignment_of< _type >::value>
using | ystdex::replace_storage_t = standard_layout_storage< pun_storage_t< _type, _vAlign >>
| 显式转换的替代标准布局替代存储类型。 更多...

## 函数

template<typename _pDst , typename _tSrc >
ystdex::enable_if_t< and_< is_object_pointer< _pDst >, is_aligned_compatible< _tSrc, remove_pointer_t< _pDst > > >::value, _pDst > | ystdex::aligned_cast (_tSrc *v)
| 保证对齐兼容的显式转换。 更多...
template<typename _rDst , typename _tSrc , typename = ystdex::enable_if_t< and_<is_reference<_rDst>, is_aligned_compatible<remove_reference_t<_tSrc>, remove_reference_t<_rDst>>>::value>>
auto | ystdex::aligned_cast (_tSrc &&v) -> decltype(std::forward< decltype(reinterpret_cast< _rDst >(v))>(reinterpret_cast< _rDst >(v)))
template<typename _pDst , typename _tSrc >
ystdex::enable_if_t< and_< is_object_pointer< _pDst >, is_aligned_storable< _tSrc, remove_pointer_t< _pDst > > >::value, _pDst > | ystdex::aligned_store_cast (_tSrc *v)
| 保证对齐存储的显式转换。 更多...
template<typename _rDst , typename _tSrc , typename = ystdex::enable_if_t< and_<is_reference<_rDst>, is_aligned_storable<remove_reference_t<_tSrc>, remove_reference_t<_rDst>>>::value>>
auto | ystdex::aligned_store_cast (_tSrc &&v) -> decltype(std::forward< decltype(reinterpret_cast< _rDst >(v))>(reinterpret_cast< _rDst >(v)))
template<typename _pDst , typename _tSrc >
ystdex::enable_if_t< and_< is_object_pointer< _pDst >, is_aligned_replaceable< _tSrc, remove_pointer_t< _pDst > > >::value, _pDst > | ystdex::aligned_replace_cast (_tSrc *v)
| 保证对齐替换存储的显式转换。 更多...
template<typename _rDst , typename _tSrc , typename = ystdex::enable_if_t< and_<is_reference<_rDst>, is_aligned_replaceable<remove_reference_t<_tSrc>, remove_reference_t<_rDst>>>::value>>
auto | ystdex::aligned_replace_cast (_tSrc &&v) -> decltype(std::forward< decltype(reinterpret_cast< _rDst >(v))>(reinterpret_cast< _rDst >(v)))
template<typename _pDst , typename _tSrc >
ystdex::enable_if_t< and_< is_object_pointer< _pDst >, is_trivially_replaceable< _tSrc, remove_pointer_t< _pDst > > >::value, _pDst > | ystdex::replace_cast (_tSrc *v)
| 保证平凡替换存储的显式转换。 更多...
template<typename _rDst , typename _tSrc , typename = ystdex::enable_if_t< and_<is_reference<_rDst>, is_trivially_replaceable<remove_reference_t<_tSrc>, remove_reference_t<_rDst>>>::value>>
auto | ystdex::replace_cast (_tSrc &&v) -> decltype(std::forward< decltype(reinterpret_cast< _rDst >(v))>(reinterpret_cast< _rDst >(v)))

## 详细描述

共享存储和直接转换。

版本
  r385

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

自从
  build 629

创建时间:
  2015-09-04 12:16:27 +0800

修改时间:
  2016-05-12 05:32 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::TypePun

在文件 type_pun.hpp 中定义.