YSTest: Binary Type Traits

YSTest PreAlpha_b900_20201012 The YSLib Test Project

模块 | 类 | 类型定义
Binary Type Traits
Template Meta Programming » Meta Operations » Metafunctions | Traits » Type Traits Operations

二元类型特征。 更多...

Binary Type Traits 的协作图:

## 模块

| Aligned Type Traits
| 对齐类型特征。

## 类

struct | ystdex::is_allocator_for< _type, _tValue >
| 判断类型是指定值类型的分配器。 更多...
struct | ystdex::have_same_modulo< _type1, _type2 >
| 判断两个类型是否具有相同的模值。 更多...
struct | ystdex::is_covariant< _tFrom, _tTo >
| 判断指定类型之间是否协变。 更多...
struct | ystdex::make_function_type< typename, class >
| 取指定返回类型和元组指定参数类型的函数类型。 更多...
struct | ystdex::cpp2017::is_invocable< _fCallable, _tParams >
struct | ystdex::has_iterator_category< _tTag, _tIter >
| 判断迭代器是否具有相同的指定的类别。 更多...
struct | ystdex::is_same_or_convertible< _type1, _type2 >
| 判断指定类型之间是否相同或可转换。 更多...
struct | ystdex::cpp2017::is_swappable_with< _type, _type2 >
| 判断是否可以调用 `swap` 。 更多...
struct | ystdex::have_common_nonempty_virtual_base< _type1, _type2 >
| 判断指定的两个类类型是否不同且有公共非空虚基类。 更多...
struct | ystdex::has_subscription< _type1, _type2 >
| 判断是否存在合式的结果为非 void 类型的 [] 操作符接受指定类型的表达式。 更多...

## 类型定义

template<class _tAlloc , typename _type >
using | ystdex::rebind_alloc_t = typename allocator_traits< _tAlloc >::template rebind_alloc< _type >
template<class _tAlloc , typename _type >
using | ystdex::any_ops::allocator_value_handler_t = allocator_value_handler< rebind_alloc_t< _tAlloc, byte >, _type >
| 取重绑定 byte 分配器的使用分配器构造时的处理器。 更多...
template<class _tAlloc , typename _type >
using | ystdex::any::allocated_value_handler_t = cond_t< any::opt_in_place_t< _type >, any_ops::value_handler< _type >, any_ops::allocator_value_handler_t< _tAlloc, _type > >
| 根据分配器类型和存储对象的类型取使用分配器构造时的处理器。 更多...
template<typename _tDst , typename _tSrc >
using | ystdex::is_narrowing_from_floating_to_integer = and_< is_integral< _tDst >, is_floating_point< _tSrc > >
template<typename _func , typename _fCallable >
using | ystdex::is_expandable = is_constructible< _func, expanded_caller< as_function_type_t< _func >, _fCallable > >
| 判断可调用类型是可展开到指定函数对象的类型。 更多...
template<typename _type , class _tCtor >
using | ystdex::is_instance_of = is_same< detected_or_t< void, details::ctor_of_or_void_t, _type >, _tCtor >
| 判断类型是否是指定类型构造器的实例。 更多...

## 详细描述

二元类型特征。

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

自从
  build 306

## 类型定义说明

## ◆ allocated_value_handler_t

template<class _tAlloc , typename _type >

using ystdex::any::allocated_value_handler_t = cond_t<any::opt_in_place_t<_type>, any_ops::value_handler<_type>, any_ops::allocator_value_handler_t<_tAlloc, _type> >

根据分配器类型和存储对象的类型取使用分配器构造时的处理器。

在文件 any.h 第 1687 行定义.

## ◆ allocator_value_handler_t

template<class _tAlloc , typename _type >

using ystdex::any_ops::allocator_value_handler_t = typedef allocator_value_handler< rebind_alloc_t<_tAlloc, byte>, _type>

取重绑定 byte 分配器的使用分配器构造时的处理器。

自从
  build 848

在文件 any.h 第 1051 行定义.

## ◆ is_expandable

template<typename _func , typename _fCallable >

using ystdex::is_expandable = typedef is_constructible<_func, expanded_caller<as_function_type_t<_func>, _fCallable> >

判断可调用类型是可展开到指定函数对象的类型。

自从
  build 850

在文件 functional.hpp 第 628 行定义.

## ◆ is_instance_of

template<typename _type , class _tCtor >

using ystdex::is_instance_of = typedef is_same< detected_or_t<void, details::ctor_of_or_void_t, _type>, _tCtor>

判断类型是否是指定类型构造器的实例。

注解
  和 vseq::is_instance 不同，只根据类型构造器判断，无视类型参数。

参见
  vseq::_a

自从
  build 849

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

## ◆ is_narrowing_from_floating_to_integer

template<typename _tDst , typename _tSrc >

using ystdex::is_narrowing_from_floating_to_integer = typedef and_<is_integral<_tDst>, is_floating_point<_tSrc> >

自从
  build 709

在文件 cast.hpp 第 70 行定义.

## ◆ rebind_alloc_t

template<class _tAlloc , typename _type >

using ystdex::rebind_alloc_t = typedef typename allocator_traits<_tAlloc>::template rebind_alloc<_type>

自从
  build 848

在文件 allocator.hpp 第 422 行定义.