YSTest: meta.hpp 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

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

通用元编程设施。 更多...

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

浏览源代码.

## 类

struct | ystdex::remove_cvref< _type >
| 移除可能被 cv-qualifier 修饰的引用类型。 更多...
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::details::is_same_or_convertible< _type1, _type2, _vSame >
struct | ystdex::details::is_same_or_convertible< _type1, _type2, true >
struct | ystdex::is_array_of_unknown_bound< _type >
| 判断是否为未知大小的数组类型。 更多...
struct | ystdex::is_object_or_void< _type >
| 判断指定类型是否为对象或 void 类型。 更多...
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::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_trivial_class< _type >
| 判断指定类型是否是平凡的非联合类类型。 更多...
struct | ystdex::is_trivial_class_type< _type >
struct | ystdex::is_trivial_union< _type >
| 判断指定类型是否是平凡的联合类型。 更多...
struct | ystdex::is_cv< _type >
| 判断指定类型是否为 const 或 volatile 类型。 更多...
struct | ystdex::is_decomposable< typename >
| 判断指定类型是否可分解为一个参数为类型的模板和类型参数。 更多...
struct | ystdex::is_decomposable< _gOp< _types... > >
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_throwing_move_copyable< _type >
| 判断指定类型是否为可复制构造但不可无抛出异常地转移构造的类型。 更多...
struct | ystdex::is_decayed< _type, _tTo >
| 判断指定类型是否已退化为指定类型。 更多...
struct | ystdex::is_unqualified< _type, _tTo >
| 判断指定类型是否为无限定的指定类型。 更多...
struct | ystdex::is_unqualified_object< _type >
| 判断类型是否为非 const 对象类型。 更多...
struct | ystdex::is_same_or_convertible< _type1, _type2 >
| 判断指定类型之间是否相同或可转换。 更多...
struct | ystdex::is_interoperable< _type1, _type2 >
| 判断指定类型之间是否相同或可互相转换。 更多...
struct | ystdex::is_explicitly_constructible< _type, _tFrom >
| 判断指定类型是否可被指定参数类型构造且要求显式构造。 更多...
struct | ystdex::is_explicitly_nothrow_constructible< _type, _tFrom >
| 判断指定类型是否可被指定参数类型无异常抛出构造且要求显式构造。 更多...
struct | ystdex::is_implicitly_constructible< _type, _tFrom >
| 判断指定类型是否可被指定参数类型构造且可隐式构造。 更多...
struct | ystdex::is_implicitly_nothrow_constructible< _type, _tFrom >
| 判断指定类型是否可被指定参数类型无异常抛出构造且可隐式构造。 更多...
struct | ystdex::is_same_param< _type, _tParam >
| 判断第一参数和第二参数指定的参数类型相同。 更多...
struct | ystdex::are_same< _type, _types >
| 判断第一参数和之后的参数指定的类型相同。 更多...
struct | ystdex::is_in_types< _type, _types >
| 判断第一参数在之后参数指定的类型中出现。 更多...
struct | ystdex::identity< _type >
| 恒等元函数。 更多...

## 命名空间

| ystdex
| `<memory>` 特性测试宏。
| ystdex::cpp2011
| 包含 ISO C++ 2011 引入的名称的命名空间。
| ystdex::cpp2014
| 使用 new 和指定参数构造指定类型的 std::unique_ptr 对象。
| ystdex::cpp2017
| 取约束范围的值。
| ystdex::details

## 类型定义

template<class _type >
using | ystdex::_t = typename _type::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::remove_cvref_t = _t< remove_cvref< _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::cpp2017::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_, typename _tElse = false_>
using | ystdex::cond = conditional< _tCond::value, _tThen, _tElse >
| 条件判断。 更多...
template<typename _tCond , typename _tThen = true_, typename _tElse = false_>
using | ystdex::cond_t = _t< cond< _tCond, _tThen, _tElse > >
template<typename _type >
using | ystdex::identity_t = _t< identity< _type > >
template<typename _type >
using | ystdex::sizeof_t = size_t_< sizeof(_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 >
template<typename _type1 , typename _type2 , typename _type = void>
using | ystdex::enable_if_same_param_t = enable_if_t< is_same_param< _type1, _type2 >::value, _type >
template<typename _tSelected , typename _tParam , typename _type = void>
using | ystdex::exclude_self_t = enable_if_t<!is_same_param< _tSelected, _tParam >::value, _type >
| 排除选择类型的特定参数的重载。 更多...

## 详细描述

通用元编程设施。

版本
  r1738

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

自从
  build 832

创建时间:
  2018-07-23 17:22:28 +0800

修改时间:
  2020-01-12 18:21 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::Meta

在文件 meta.hpp 中定义.