YSTest: cast.hpp 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

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

C++ 转换模板。 更多...

`#include "type_op.hpp"`
`#include <limits>`
`#include "exception.h"`
`#include <typeinfo>`
`#include "cassert.h"`
cast.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

struct | ystdex::details::narrow_test< _tDst >
struct | ystdex::details::general_polymorphic_cast_helper< _tFrom, _tTo, _bNonVirtualDownCast >
struct | ystdex::details::general_polymorphic_cast_helper< _tFrom, _tTo, false >
struct | ystdex::details::general_cast_helper< _tFrom, _tTo, _bUseStaticCast >
struct | ystdex::details::general_cast_helper< _tFrom, _tTo, false >
struct | ystdex::details::general_cast_helper< _type, _type, true >
struct | ystdex::details::general_cast_helper< _type, _type, false >
struct | ystdex::details::general_cast_type_helper< _tFrom, _tTo >

## 命名空间

| ystdex
| `<memory>` 特性测试宏。
| ystdex::details

## 类型定义

template<typename _tDst , typename _tSrc >
using | ystdex::is_narrowing_from_floating_to_integer = and_< is_integral< _tDst >, is_floating_point< _tSrc > >
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 _tSrc , typename _tDst = const decay_t<_tSrc>&&>
_tDst | ystdex::qualify (_tSrc &&arg)
| 允许添加限定符转换。 更多...
template<typename _tDst , typename _tSrc >
auto | ystdex::details::test_narrow (_tSrc v) -> decltype(narrow_test< _tDst >
| ystdex::details::get ())
template<typename >
true_ | ystdex::details::test_narrow (...)
template<typename _tDst , typename _tSrc >
_tDst | ystdex::narrow_cast (_tSrc v)
| 可能缩小数值范围的显式转换。 更多...
template<typename _tDst , typename _tSrc >
_tDst | ystdex::narrow (_tSrc v)
template<typename _tDst , typename _tSrc >
_tDst | ystdex::details::not_widen_cast (_tSrc v, true_)
template<typename _tDst , typename _tSrc >
_tDst | ystdex::details::not_widen_cast (_tSrc v, false_)
template<typename _tDst , typename _tSrc >
_tDst | ystdex::not_widen_cast (_tSrc v)
| 可能缩小数值范围或数值范围最大和最小值保持不变的转换。 更多...
template<typename _tDst , typename _tSrc >
_tDst | ystdex::not_widen (_tSrc v)
template<typename _pDst , class _tSrc >
_pDst | ystdex::polymorphic_cast (_tSrc *v)
| 多态类指针类型转换。 更多...
template<typename _pDst , class _tSrc >
_pDst | ystdex::polymorphic_downcast (_tSrc *v)
| 多态类指针向派生类指针转换。 更多...
template<typename _rDst , class _tSrc >
enable_if_t< is_lvalue_reference< _rDst >::value, _rDst > | ystdex::polymorphic_downcast (_tSrc &v)
template<typename _rDst , class _tSrc >
enable_if_t< is_rvalue_reference< _rDst >::value &&!is_reference< _tSrc >::value, _rDst > | ystdex::polymorphic_downcast (_tSrc &&v)
template<class _tDst , typename _tSrc , typename _tDeleter >
enable_if_t<!is_reference< _tDst >::value &&!is_array< _tDst >::value, std::unique_ptr< _tDst, _tDeleter > > | ystdex::polymorphic_downcast (std::unique_ptr< _tSrc, _tDeleter > &&v)
template<class _tDst , typename _tSrc >
enable_if_t<!is_reference< _tDst >::value &&!is_array< _tDst >::value, std::shared_ptr< _tDst > > | ystdex::polymorphic_downcast (const std::unique_ptr< _tSrc > &v)
template<typename _pDst , class _tSrc >
_pDst | ystdex::polymorphic_crosscast (_tSrc *v)
| 多态类指针交叉转换。 更多...
template<typename _rDst , class _tSrc >
_rDst | ystdex::polymorphic_crosscast (_tSrc &v)
template<typename _rDst , class _tSrc >
enable_if_t<!is_reference< _tSrc >::value, _rDst > | ystdex::polymorphic_crosscast (_tSrc &&v)
template<typename _tDst , typename _tSrc >
_tDst | ystdex::general_cast (_tSrc *v)
| 一般类型转换。 更多...
template<typename _tDst , typename _tSrc >
_tDst | ystdex::general_cast (_tSrc &v)
template<typename _tDst , typename _tSrc >
const _tDst | ystdex::general_cast (const _tSrc &v)

## 详细描述

C++ 转换模板。

版本
  r1449

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

自从
  build 175

创建时间:
  2010-12-15 08:13:18 +0800

修改时间:
  2020-05-24 11:54 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::Cast

在文件 cast.hpp 中定义.