YSTest: Cast

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

命名空间 | 类 | 函数
Cast

显式类型转换。 更多...

Cast 的协作图:

## 命名空间

| ystdex::details

## 类

struct | ystdex::details::narrow_test< _tDst >

## 函数

template<typename _tSrc , typename _tDst = const decay_t<_tSrc>&&>
_tDst | ystdex::qualify (_tSrc &&arg)
| 允许添加限定符转换。 更多...
template<typename _tDst , typename _tSrc >
using | ystdex::is_narrowing_from_floating_to_floating = and_< is_floating_point< _tDst >, is_floating_point< _tSrc >, is_same< common_type_t< _tDst, _tSrc >, _tSrc >>
template<typename _tDst , typename _tSrc >
using | ystdex::is_narrowing_from_floating = or_< is_narrowing_from_floating_to_integer< _tDst, _tSrc >, is_narrowing_from_floating_to_floating< _tDst, _tSrc >>
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)))

## 详细描述

显式类型转换。

自从
  build 243

## 类型定义说明

template<typename _tDst , typename _tSrc >

using ystdex::is_narrowing_from_floating = typedef or_<is_narrowing_from_floating_to_integer<_tDst, _tSrc>, is_narrowing_from_floating_to_floating<_tDst, _tSrc>>

在文件 cast.hpp 第 81 行定义.

template<typename _tDst , typename _tSrc >

using ystdex::is_narrowing_from_floating_to_floating = typedef and_<is_floating_point<_tDst>, is_floating_point<_tSrc>, is_same<common_type_t<_tDst, _tSrc>, _tSrc>>

在文件 cast.hpp 第 76 行定义.

## 函数说明

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

inline

保证对齐兼容的显式转换。

前置条件
  目标类型是对象指针或引用。

注解
  使用 `reinterpret_cast` 且保证目标类型的对齐要求不比源类型更严格以保证可逆。
  用于替代针对满足 is_aligned_compatible 要求对象的 `reinterpret_cast` 。

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

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 _tSrc , typename _tDst = const decay_t<_tSrc>&&>

_tDst ystdex::qualify | ( | _tSrc && | arg | ) |

inline

允许添加限定符转换。

前置条件
  源类型和目标类型退化后相同。

注解
  指定源类型优先，可自动推导目标类型。

参见
  as_const

自从
  build 531

在文件 cast.hpp 第 56 行定义.