YSTest: type_traits.hpp 文件参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

- 文件列表
- 文件成员

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

ISO C++ 类型特征扩展。 更多...

`#include "../ydef.h"`
type_traits.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 类

struct | ystdex::and_<... >
| 逻辑操作元函数。 更多...
struct | ystdex::and_<>
struct | ystdex::and_< _b1 >
struct | ystdex::and_< _b1, _b2, _bn... >
struct | ystdex::or_<... >
struct | ystdex::or_<>
struct | ystdex::or_< _b1 >
struct | ystdex::or_< _b1, _b2, _bn... >
struct | ystdex::not_< _b >
struct | ystdex::details::is_referenceable_function< _type >
struct | ystdex::details::is_referenceable_function< _tRes(_tParams...)>
struct | ystdex::details::is_referenceable_function< _tRes(_tParams...,...)>
struct | ystdex::is_referenceable< _type >
| 判断指定类型是否为可引用类型。 更多...
struct | ystdex::dep_swap::helper< _type, _type2 >
struct | ystdex::is_swappable_with< _type, _type2 >
| 判断是否可以调用 `swap` 。 更多...
struct | ystdex::is_swappable< _type >
struct | ystdex::is_nothrow_swappable_with< _type, _type2 >
| 判断是否可以无抛出地调用 `swap` 。 更多...
struct | ystdex::is_nothrow_swappable< _type >
struct | ystdex::always< _type >
| 表达式 SFINAE 别名模板。 更多...
struct | ystdex::always< _type >::impl<... >
struct | ystdex::when< _bCond >
| 类似 void_t 的元函数，具有较低匹配优先级，避免偏特化歧义；但使用条件表达式。 更多...
struct | ystdex::any_constructible
| 接受任意参数类型构造的类型。 更多...
struct | ystdex::nonesuch
| 不接受任意参数类型构造的类型。 更多...
struct | ystdex::details::detector< _tDefault, typename, class,... >
struct | ystdex::details::detector< _tDefault, void_t< _gOp< _tParams... > >, _gOp, _tParams... >
struct | ystdex::is_array_of_unknown_bound< _type >
| 判断是否为未知大小的数组类型。 更多...
struct | ystdex::is_object_or_void< _type >
| 判断指定类型是否为对象或 void 类型。 更多...
struct | ystdex::is_returnable< _type >
| 判断指定类型是否可作为返回类型。 更多...
struct | ystdex::is_class_type< _type >
| 判断指定类型是否是类类型。 更多...
struct | ystdex::is_nonconst_object< _type >
| 判断类型是否为非 const 对象类型。 更多...
struct | ystdex::is_pointer_to_object< _type >
| 判断指定类型是否是指向对象类型的指针。 更多...
struct | ystdex::is_object_pointer< _type >
| 判断指定类型是否是指向对象类型的指针。 更多...
struct | ystdex::is_function_pointer< _type >
| 判断指定类型是否是指向函数类型的指针。 更多...
struct | ystdex::is_class_pointer< _type >
| 判断指定类型是否是指向类类型的指针。 更多...
struct | ystdex::is_lvalue_class_reference< _type >
| 判断指定类型是否是类类型左值引用。 更多...
struct | ystdex::is_rvalue_class_reference< _type >
| 判断指定类型是否是类类型右值引用。 更多...
struct | ystdex::is_pod_struct< _type >
| 判断指定类型是否是 POD struct 。 更多...
struct | ystdex::is_pod_union< _type >
| 判断指定类型是否是 POD union 。 更多...
struct | ystdex::is_cv< _type >
| 判断指定类型是否为 const 或 volatile 类型。 更多...
struct | ystdex::is_decomposable< typename >
| 判断指定类型是否可分解为一个参数为类型的模板和类型参数。 更多...
struct | ystdex::is_decomposable< _gOp< _types... > >
struct | ystdex::is_decayed< _type >
| 判断指定类型是否已退化。 更多...
struct | ystdex::is_copyable< _type >
struct | ystdex::is_moveable< _type >
struct | ystdex::is_nothrow_copyable< _type >
struct | ystdex::is_nothrow_moveable< _type >
struct | ystdex::is_trivially_copyable< _type >
struct | ystdex::is_trivially_moveable< _type >
struct | ystdex::is_interoperable< _type1, _type2 >
| 判断指定类型之间是否可转换。 更多...
struct | ystdex::are_same< _type, _types >
| 判断第一个参数和之后的参数指定的类型相同。 更多...
struct | ystdex::is_in_types< _type, _types >
| 判断第一个参数在之后参数指定的类型中出现。 更多...
struct | ystdex::identity< _type >
| 恒等元函数。 更多...

## 命名空间

| ystdex
| <functional> 特性测试宏。
| ystdex::cpp2011
| 包含 ISO C++ 2011 引入的名称的命名空间。
| ystdex::cpp2014
| 包含 ISO C++ 2014 引入的名称的命名空间。
| ystdex::details
| ystdex::dep_swap
| 引入 std::swap 实现为 ADL 提供重载的命名空间。

## 类型定义

template<class _type >
using | ystdex::_t = typename _type::type
| 嵌套类型别名。 更多...
template<bool _b>
using | ystdex::bool_constant = integral_constant< bool, _b >
| bool 常量。 更多...
template<typename _type >
using | ystdex::indirect_element_t = remove_reference_t< indirect_t< _type >>
template<typename _type >
using | ystdex::cpp2014::remove_const_t = typename remove_const< _type >::type
| ISO C++ 14 兼容类型操作别名。 更多...
template<typename _type >
using | ystdex::cpp2014::remove_volatile_t = typename remove_volatile< _type >::type
template<typename _type >
using | ystdex::cpp2014::remove_cv_t = typename remove_cv< _type >::type
template<typename _type >
using | ystdex::cpp2014::add_const_t = typename add_const< _type >::type
template<typename _type >
using | ystdex::cpp2014::add_volatile_t = typename add_volatile< _type >::type
template<typename _type >
using | ystdex::cpp2014::add_cv_t = typename add_cv< _type >::type
template<typename _type >
using | ystdex::cpp2014::remove_reference_t = typename remove_reference< _type >::type
template<typename _type >
using | ystdex::cpp2014::add_lvalue_reference_t = typename add_lvalue_reference< _type >::type
template<typename _type >
using | ystdex::cpp2014::add_rvalue_reference_t = typename add_rvalue_reference< _type >::type
template<typename _type >
using | ystdex::cpp2014::make_signed_t = typename make_signed< _type >::type
template<typename _type >
using | ystdex::cpp2014::make_unsigned_t = typename make_unsigned< _type >::type
template<typename _type >
using | ystdex::cpp2014::remove_extent_t = typename remove_extent< _type >::type
template<typename _type >
using | ystdex::cpp2014::remove_all_extents_t = typename remove_all_extents< _type >::type
template<typename _type >
using | ystdex::cpp2014::remove_pointer_t = typename remove_pointer< _type >::type
template<typename _type >
using | ystdex::cpp2014::add_pointer_t = typename add_pointer< _type >::type
template<size_t _vLen, size_t _vAlign = std::alignment_of< typename aligned_storage<_vLen>::type >::value>
using | ystdex::cpp2014::aligned_storage_t = typename aligned_storage< _vLen, _vAlign >::type
template<size_t _vLen, typename... _types>
using | ystdex::cpp2014::aligned_union_t = typename aligned_union< _vLen, _types... >::type
template<typename _type >
using | ystdex::cpp2014::decay_t = typename decay< _type >::type
template<bool _bCond, typename _type = void>
using | ystdex::cpp2014::enable_if_t = typename enable_if< _bCond, _type >::type
template<bool _bCond, typename _type , typename _type2 >
using | ystdex::cpp2014::conditional_t = typename conditional< _bCond, _type, _type2 >::type
template<typename... _types>
using | ystdex::cpp2014::common_type_t = typename common_type< _types... >::type
template<typename _type >
using | ystdex::cpp2014::underlying_type_t = typename underlying_type< _type >::type
template<typename _type >
using | ystdex::cpp2014::result_of_t = typename result_of< _type >::type
template<typename _type , typename... _types>
using | ystdex::well_formed_t = typename always< _type >::template apply< _types... >::type
| void_t 的一般化，允许指定别名类型。 更多...
template<typename... _types>
using | ystdex::void_t = well_formed_t< void, _types... >
template<typename... _types>
using | ystdex::when_valid = well_formed_t< when< true >, _types... >
| 类似 void_t 的元函数，但具有较低匹配优先级，避免偏特化歧义。 更多...
template<bool _bCond>
using | ystdex::enable_when = enable_if_t< _bCond, when< true >>
| 类似 enable_if_t 的元函数，但具有较低匹配优先级，避免偏特化歧义。 更多...
template<template< typename... > class _gOp, typename... _tParams>
using | ystdex::is_detected = typename details::detector< nonesuch, void, _gOp, _tParams... >::value_t
template<template< typename... > class _gOp, typename... _tParams>
using | ystdex::detected_t = _t< details::detector< nonesuch, void, _gOp, _tParams... >>
template<typename _tDefault , template< typename... > class _gOp, typename... _tParams>
using | ystdex::detected_or = details::detector< _tDefault, void, _gOp, _tParams... >
template<typename _tDefault , template< typename... > class _gOp, typename... _tParams>
using | ystdex::detected_or_t = _t< detected_or< _tDefault, _gOp, _tParams... >>
template<typename _tExpected , template< typename... > class _gOp, typename... _tParams>
using | ystdex::is_detected_exact = is_same< _tExpected, detected_t< _gOp, _tParams... >>
template<typename _tTo , template< typename... > class _gOp, typename... _tParams>
using | ystdex::is_detected_convertible = is_convertible< detected_t< _gOp, _tParams... >, _tTo >
template<typename _tCond , typename _tThen = true_type, typename _tElse = false_type>
using | ystdex::cond_t = conditional_t< _tCond::value, _tThen, _tElse >
| 条件判断。 更多...
template<class _tClass , typename _tParam , typename _type = void>
using | ystdex::exclude_self_t = enable_if_t<!is_same< _tClass &, decay_t< _tParam > & >::value, _type >
| 移除选择类类型的特定重载避免构造模板和复制/转移特殊成员函数冲突。 更多...
template<typename _type >
using | ystdex::identity_t = _t< identity< _type >>
template<typename _type >
using | ystdex::addrof_t = decltype(&std::declval< _type >())
template<typename _type >
using | ystdex::indirect_t = decltype(*std::declval< _type >())
template<typename _tFrom , typename _tTo , typename _type = void>
using | ystdex::enable_if_convertible_t = enable_if_t< is_convertible< _tFrom, _tTo >::value, _type >
template<typename _tFrom , typename _tTo , typename _type = void>
using | ystdex::enable_if_inconvertible_t = enable_if_t<!is_convertible< _tFrom, _tTo >::value, _type >
template<typename _type1 , typename _type2 , typename _type = void>
using | ystdex::enable_if_interoperable_t = enable_if_t< is_interoperable< _type1, _type2 >::value, _type >
template<typename _type1 , typename _type2 , typename _type = void>
using | ystdex::enable_if_same_t = enable_if_t< is_same< _type1, _type2 >::value, _type >

## 函数

nonesuch | ystdex::dep_swap::swap (any_constructible, any_constructible)

## 详细描述

ISO C++ 类型特征扩展。

版本
  r1061

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

自从
  build 201

创建时间:
  2015-11-04 09:34:17 +0800

修改时间:
  2016-05-22 14:01 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::TypeTraits

在文件 type_traits.hpp 中定义.