YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
Cast

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

函数

template<typename _tDst , typename _tSrc >
_tDst ystdex::union_cast (_tSrc x)
 使用匿名联合体进行的类型转换。 更多...
 
template<typename _pDst , class _tSrc >
_pDst ystdex::polymorphic_cast (_tSrc *x)
 多态类指针类型转换。 更多...
 
template<typename _pDst , class _tSrc >
_pDst ystdex::polymorphic_downcast (_tSrc *x)
 多态类指针向派生类指针转换。 更多...
 
template<typename _rDst , class _tSrc >
_rDst ystdex::polymorphic_downcast (_tSrc &x)
 
template<typename _rDst , class _tSrc >
enable_if_t<!is_reference
< _tSrc >::value, _rDst > 
ystdex::polymorphic_downcast (_tSrc &&x)
 
template<typename _pDst , class _tSrc >
_pDst ystdex::polymorphic_crosscast (_tSrc *x)
 多态类指针交叉转换。 更多...
 
template<typename _rDst , class _tSrc >
_rDst ystdex::polymorphic_crosscast (_tSrc &x)
 
template<typename _rDst , class _tSrc >
enable_if_t<!is_reference
< _tSrc >::value, _rDst > 
ystdex::polymorphic_crosscast (_tSrc &&x)
 
template<typename _tDst , typename _tSrc >
_tDst ystdex::general_cast (_tSrc *x)
 一般类型转换。 更多...
 
template<typename _tDst , typename _tSrc >
_tDst ystdex::general_cast (_tSrc &x)
 
template<typename _tDst , typename _tSrc >
const _tDst ystdex::general_cast (const _tSrc &x)
 

详细描述

显式类型转换。

自从
build 243

函数说明

template<typename _tDst , typename _tSrc >
_tDst ystdex::general_cast ( _tSrc *  x)
inline

一般类型转换。

模板参数
_tSrc源类型。
_tDst目标类型。
自从
build 175
待办事项:
扩展接受右值引用参数。

能确保安全隐式转换时使用 static_cast ; 除此之外非虚基类向派生类转换使用 polymophic_downcast; 否则使用 dynamic_cast。

在文件 cast.hpp320 行定义.

template<typename _tDst , typename _tSrc >
_tDst ystdex::general_cast ( _tSrc &  x)
inline

在文件 cast.hpp327 行定义.

template<typename _tDst , typename _tSrc >
const _tDst ystdex::general_cast ( const _tSrc &  x)
inline

在文件 cast.hpp334 行定义.

template<typename _pDst , class _tSrc >
_pDst ystdex::polymorphic_cast ( _tSrc *  x)
inline

多态类指针类型转换。

模板参数
_tSrc源类型。
_pDst目标类型。
前置条件
静态断言: _tSrc 是多态类。
静态断言: _pDst 是内建指针。
异常
std::bad_castdynamic_cast 失败。
自从
build 175

在文件 cast.hpp96 行定义.

template<typename _pDst , class _tSrc >
_pDst ystdex::polymorphic_crosscast ( _tSrc *  x)
inline

多态类指针交叉转换。

模板参数
_tSrc源类型。
_pDst目标类型。
前置条件
静态断言: _tSrc 是多态类。
静态断言: _pDst 是内建指针。
断言: dynamic_cast 成功。
返回
非空结果。
注解
空指针作为参数一定失败。
自从
build 179

在文件 cast.hpp184 行定义.

参考 yassume.

template<typename _rDst , class _tSrc >
_rDst ystdex::polymorphic_crosscast ( _tSrc &  x)
inline
模板参数
_tSrc源类型。
_rDst目标类型。
前置条件
静态断言: _rDst 是左值引用。
自从
build 496

在文件 cast.hpp202 行定义.

template<typename _rDst , class _tSrc >
enable_if_t<!is_reference<_tSrc>::value, _rDst> ystdex::polymorphic_crosscast ( _tSrc &&  x)
inline
模板参数
_tSrc源类型。
_rDst目标类型。
前置条件
静态断言: _rDst 是右值引用。
自从
build 496

在文件 cast.hpp218 行定义.

template<typename _pDst , class _tSrc >
_pDst ystdex::polymorphic_downcast ( _tSrc *  x)
inline

多态类指针向派生类指针转换。

模板参数
_tSrc源类型。
_pDst目标类型。
前置条件
静态断言: _tSrc 是多态类。
静态断言: _pDst 是内建指针。
静态断言: _tSrc 是 _pDst 指向的类去除修饰符后的基类。
断言: dynamic_cast 成功。
自从
build 175

在文件 cast.hpp124 行定义.

参考 yassume.

template<typename _rDst , class _tSrc >
_rDst ystdex::polymorphic_downcast ( _tSrc &  x)
inline
模板参数
_tSrc源类型。
_rDst目标类型。
前置条件
静态断言: _rDst 是左值引用。
自从
build 496

在文件 cast.hpp142 行定义.

template<typename _rDst , class _tSrc >
enable_if_t<!is_reference<_tSrc>::value, _rDst> ystdex::polymorphic_downcast ( _tSrc &&  x)
inline
模板参数
_tSrc源类型。
_rDst目标类型。
前置条件
静态断言: _rDst 是右值引用。
自从
build 496

在文件 cast.hpp158 行定义.

template<typename _tDst , typename _tSrc >
_tDst ystdex::union_cast ( _tSrc  x)
inline

使用匿名联合体进行的类型转换。

模板参数
_tSrc源类型。
_tDst目标类型。
前置条件
is_pod<_tDst>::value && sizeof<_tSrc> == sizeof<_tDst>
自从
build 297

在文件 cast.hpp56 行定义.