YSTest: YBase Replacement features

YSTest PreAlpha_b900_20201012 The YSLib Test Project

模块 | 类 | 类型定义 | 函数
YBase Replacement features

YBase 替代特性。 更多...

YBase Replacement features 的协作图:

## 模块

| Language Compatibility Features
| 语言兼容特性。

## 类

class | ystdex::any
| 基于类型擦除的动态泛型对象。 更多...
struct | ystdex::cpp2014::integer_sequence< _tInt, _vSeq >
class | ystdex::list< _type, _tAlloc >
| 列表容器。 更多...
class | ystdex::map< _tKey, _tMapped, _fComp, _tAlloc >
| 映射容器。 更多...
class | ystdex::pmr::cpp2017::memory_resource
| 存储资源。 更多...
class | ystdex::pmr::polymorphic_allocator< _type >
| 多态分配器。 更多...
class | ystdex::pmr::cpp2017::synchronized_pool_resource
struct | ystdex::remove_cvref< _type >
| 移除可能被 cv-qualifier 修饰的引用类型。 更多...
class | ystdex::cpp2017::bad_optional_access
| 可选值操作失败异常。 更多...
class | ystdex::cpp2017::optional< _type >
| 可选值对象包装。 更多...
struct | ystdex::uniformed_tags::in_place_tag
| 原地标记类型。 更多...
class | ystdex::observer_ptr< _type >
| 观察者指针：无所有权的智能指针。 更多...
class | ystdex::cpp2017::basic_string< _tChar, _tTraits, _tAlloc >
class | ystdex::cpp2017::basic_string_view< _tChar, _tTraits >
struct | ystdex::cpp2017::is_swappable_with< _type, _type2 >
| 判断是否可以调用 `swap` 。 更多...
struct | ystdex::cpp2014::is_null_pointer< _type >

## 类型定义

template<typename _fSig >
using | ystdex::function = function_base< function_traits< _fSig, empty_function_policy::throwing >, _fSig >
| 函数包装类模板。 更多...
template<size_t... _vSeq>
using | ystdex::cpp2014::index_sequence = integer_sequence< size_t, _vSeq... >
template<class... _b>
using | ystdex::cpp2017::conjunction = and_< _b... >
template<typename... _types>
using | ystdex::cpp2017::void_t = well_formed_t< void, _types... >
template<template< typename... > class _gOp, typename... _tParams>
using | ystdex::is_detected = typename details::detector< nonesuch, void, _gOp, _tParams... >::value_t

## 函数

template<typename _type , typename _fComp = less<_type>>
const _type & | ystdex::cpp2014::min (const _type &a, const _type &b, _fComp comp=less< _type >())
| 取较小的元素。 更多...
template<typename _type , typename _fComp >
const _type & | ystdex::cpp2017::clamp (const _type &v, const _type &lo, const _type &hi, _fComp comp)
memory_resource * | ystdex::pmr::cpp2017::new_delete_resource ()
template<class _tPointer >
auto | ystdex::to_address (const _tPointer &p) -> decltype(details::to_address(p))
| 转换指针。 更多...
template<typename _type , size_t _vN>
_type * | ystdex::begin (_type(&&array)[_vN])
template<typename _type , size_t _vN>
_type * | ystdex::data (_type(&&array)[_vN])

## 详细描述

YBase 替代特性。

自从
  build 837

YBase 提供的替代 ISO C++ 特性的接口。 若接口是类或类模板，可能具有扩展特性的成员以及与使用相关类型作为参数的函数或函数模板。

## 类型定义说明

## ◆ conjunction

template<class... _b>

using ystdex::cpp2017::conjunction = typedef and_<_b...>

参见
  WG21 P0013R1 。
  WG21 N4606 20.15.8[meta.logical] 。

自从
  build 723

在文件 integral_constant.hpp 第 223 行定义.

## ◆ function

template<typename _fSig >

using ystdex::function = typedef function_base<function_traits<_fSig, empty_function_policy::throwing>, _fSig>

函数包装类模板。

参见
  ISO C++17 [func.wrap.func] 。
  WG21 P0288 。

在文件 function.hpp 第 899 行定义.

## ◆ index_sequence

template<size_t... _vSeq>

using ystdex::cpp2014::index_sequence = typedef integer_sequence<size_t, _vSeq...>

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

## ◆ is_detected

template<template< typename... > class _gOp, typename... _tParams>

using ystdex::is_detected = typedef typename details::detector<nonesuch, void, _gOp, _tParams...>::value_t

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

## ◆ void_t

template<typename... _types>

using ystdex::cpp2017::void_t = typedef well_formed_t<void, _types...>

参见
  WG21 N3911 。
  WG21 N4296 20.10.2[meta.type.synop] 。

自从
  build 591

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

## 函数说明

## ◆ begin()

template<typename _type , size_t _vN>

_type* ystdex::begin | ( | _type(&&) | array[_vN] | ) |

inline

自从
  build 833
  build 664

在文件 range.hpp 第 375 行定义.

## ◆ clamp()

template<typename _type , typename _fComp >

const _type& ystdex::cpp2017::clamp | ( | const _type & | v,
|  | const _type & | lo,
|  | const _type & | hi,
|  | _fComp | comp
| ) |  |

inline

在文件 algorithm.hpp 第 674 行定义.

引用了 v , 以及 yconstraint.

## ◆ data()

template<typename _type , size_t _vN>

_type* ystdex::data | ( | _type(&&) | array[_vN] | ) |

inline

在文件 range.hpp 第 610 行定义.

## ◆ min()

template<typename _type , typename _fComp = less<_type>>

const _type& ystdex::cpp2014::min | ( | const _type & | a,
|  | const _type & | b,
|  | _fComp | comp = `less<_type>()`
| ) |  |

inline

取较小的元素。

自从
  build 578

注解
  语义同 ISO C++14 std::min 的带 constexpr 的重载。

在文件 algorithm.hpp 第 614 行定义.

引用了 YSLib::a.

被这些函数引用 ystdex::pmr::resource_pool::allocate(), ystdex::pmr::pool_resource::do_allocate(), platform::FetchRootNameLength_P(), std::numeric_limits< ystdex::fixed_point< _tBase, _vInt, _vFrac > >::lowest(), std::numeric_limits< ystdex::fixed_point< _tBase, _vInt, _vFrac > >::min(), ystdex::narrow_cast(), ystdex::details::not_widen_cast(), ystdex::not_widen_cast(), ystdex::str_rfind(), ystdex::cpp2017::basic_string_view< _tChar, _tTraits >::substr(), ystdex::to_array() , 以及 ystdex::write().

这是这个函数的调用关系图:

## ◆ new_delete_resource()

memory_resource * ystdex::pmr::cpp2017::new_delete_resource | ( |  | ) |

自从
  build 845
  build 845
  build 845
  build 845

在文件 memory_resource.cpp 第 64 行定义.

引用了 alignment, ystdex::make_unique_default_init(), ystdex::cpp2014::max(), platform::p, YSLib::Drawing::r, yaligned, yalignof, yassume, YB_ALLOCATOR, YB_ATTR_returns_nonnull, YB_Impl_do_is_equal, ynothrow , 以及 yunused.

被这些函数引用 ystdex::pmr::cpp2017::set_default_resource().

函数调用图:
这是这个函数的调用关系图:

## ◆ to_address()

template<class _tPointer >

auto ystdex::to_address | ( | const _tPointer & | p | ) | -> decltype(details::to_address(p))

inline

转换指针。

自从
  build 846

参见
  WG21 P0653R2 。

在文件 pointer.hpp 第 96 行定义.

引用了 platform::p , 以及 ystdex::details::to_address().

被这些函数引用 ystdex::allocator_delete< _tAlloc >::operator()().

函数调用图:
这是这个函数的调用关系图: