YSTest: Aligned Type Traits

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

类
Aligned Type Traits
Template Meta Programing » Meta Operations » Metafunctions » Type Traits Operations » Binary Type Traits

对齐类型特征。 更多...

Aligned Type Traits 的协作图:

## 类

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 >
| 判断是否可平凡替换存储。 更多...
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)))

## 详细描述

对齐类型特征。

注解
  第一参数类型比第二参数类型对齐要求更严格或相同。

自从
  build 630

## 函数说明

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) ))

inline

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

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 | ) |

inline

保证对齐替换存储的显式转换。

注解
  用于替代针对满足 is_aligned_replaceable 要求对象的 `reinterpret_cast` 。

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

参考 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) ))

inline

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

参考 yforward.

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 | ) |

inline

保证对齐存储的显式转换。

注解
  用于替代针对满足 is_aligned_storable 要求对象的 `reinterpret_cast` 。

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

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) ))

inline

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

参考 v , 以及 yforward.

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 | ) |

inline

保证平凡替换存储的显式转换。

注解
  用于替代针对满足 is_trivially_replaceable 要求对象的 `reinterpret_cast` 。

自从
  build 629

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

参考 v.

参考自 ystdex::ntctschr(), ystdex::ntctscpy() , 以及 ystdex::ntctsncpy().

这是这个函数的调用关系图:
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) ))

inline

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

参考 yforward.