YSTest: Transformation Traits

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 类型定义
Transformation Traits
Template Meta Programming » Meta Operations » Metafunctions | Traits » Type Traits Operations

变换类型特征。 更多...

Transformation Traits 的协作图:

## 类

struct | ystdex::make_signed_c< _type, bool >
| 取指定整数类型和条件表达式对应的有符号或无符号整数类型。 更多...
struct | ystdex::make_widen_int< _type, _bSigned >
| 位加倍扩展。 更多...
struct | ystdex::make_parameter_list< _fCallable >
| 取参数列表。 更多...
struct | ystdex::cpp2017::invoke_result< _fCallable, _tParams >
struct | ystdex::remove_cvref< _type >
| 移除可能被 cv-qualifier 修饰的引用类型。 更多...
struct | ystdex::identity< _type >
| 恒等元函数。 更多...
struct | ystdex::pointer_classify< _type >
| 指针包装为类类型迭代器。 更多...
struct | ystdex::unwrap_reference< _type >
| 取引用包装的类型或未被包装的模板参数类型。 更多...

## 类型定义

template<typename _type >
using | ystdex::member_target_type_t = _t< details::member_target_type_impl< _type > >
| 取成员指针类型指向的类类型。 更多...
template<typename _type >
using | ystdex::cpp2014::remove_const_t = typename remove_const< _type >::type
| ISO C++ 14 兼容类型操作别名。 更多...
template<typename _tSwapped , typename _type = void>
using | ystdex::enable_if_swap_movable_t = enable_if_t< is_swap_movable< _tSwapped >::value, _type >
template<size_t _vIdx, typename _type >
using | ystdex::cpp2014::tuple_element_t = _t< std::tuple_element< _vIdx, _type > >
template<typename _tSelected , typename... _tParams>
using | ystdex::exclude_self_params_t = enable_if_t< not_< cond_or_t< bool_< sizeof...(_tParams)==1 >, false_, is_same_param, _tSelected, _tParams... > >::value, void >
| 排除选择类型的特定参数类型的重载。 更多...
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 _type >
using | ystdex::id_t = _type

## 详细描述

变换类型特征。

参见
  ISO C++11 20.9.1 [meta.rqmts] 。

自从
  build 590

## 类型定义说明

## ◆ enable_if_swap_movable_t

template<typename _tSwapped , typename _type = void>

using ystdex::enable_if_swap_movable_t = typedef enable_if_t<is_swap_movable<_tSwapped>::value, _type>

在文件 swap.hpp 第 65 行定义.

## ◆ exclude_self_params_t

template<typename _tSelected , typename... _tParams>

using ystdex::exclude_self_params_t = typedef enable_if_t<not_<cond_or_t<bool_<sizeof...(_tParams) == 1>, false_, is_same_param, _tSelected, _tParams...> >::value, void >

排除选择类型的特定参数类型的重载。

注解
  第一参数通常为类类型，可避免被选择的类的构造模板和复制/转移特殊成员函数冲突。
  类似 exclude_self_t ，但支持参数包，而不支持指定结果类型。

自从
  build 848

在文件 type_op.hpp 第 293 行定义.

## ◆ id_t

template<typename _type >

using ystdex::id_t = typedef _type

注解
  参数可能是不完整类型。
  保证不依赖非推导上下文实现简单类型操作，可用于可推导的转换函数的名称。
  和标准库对应的转换特征不同，引起 void 引用、引用的指针等的构造可能直接不合式。

参见
  CWG 395

自从
  build 756

在文件 type_traits.hpp 第 50 行定义.

## ◆ member_target_type_t

template<typename _type >

using ystdex::member_target_type_t = typedef _t<details::member_target_type_impl<_type> >

取成员指针类型指向的类类型。

自从
  build 612

在文件 invoke.hpp 第 136 行定义.

## ◆ pun_storage_t

template<typename _type , size_t _vAlign = std::alignment_of< _type >::value>

using ystdex::pun_storage_t = typedef aligned_storage_t<sizeof(_type), _vAlign>

显式转换的替代对齐存储对齐存储类型。

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

## ◆ remove_const_t

template<typename _type >

using ystdex::cpp2014::remove_const_t = typedef typename remove_const<_type>::type

ISO C++ 14 兼容类型操作别名。

自从
  build 340

在文件 meta.hpp 第 136 行定义.

## ◆ replace_storage_t

template<typename _type , size_t _vAlign = std::alignment_of< _type >::value>

using ystdex::replace_storage_t = typedef standard_layout_storage<pun_storage_t<_type, _vAlign> >

显式转换的替代标准布局替代存储类型。

自从
  build 693

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

## ◆ tuple_element_t

template<size_t _vIdx, typename _type >

using ystdex::cpp2014::tuple_element_t = typedef _t<std::tuple_element<_vIdx, _type> >

自从
  build 477

在文件 tuple.hpp 第 49 行定义.