YSTest: YBase Replacement extensions

YSTest PreAlpha_b900_20201012 The YSLib Test Project

模块 | 命名空间 | 类 | 类型定义 | 函数
YBase Replacement extensions

YBase 替代扩展。 更多...

YBase Replacement extensions 的协作图:

## 模块

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

## 命名空间

| ystdex::any_ops

## 类

struct | ystdex::addrof< _type >
| 一元 & 操作。 更多...
struct | ystdex::cpp2017::optional_last_value< _type >
| 合并可选值序列。 更多...

## 类型定义

template<class _tString >
using | ystdex::string_view_t = basic_string_view< typename _tString::value_type >
| 取字符串类类型的值类型对应的字符串视图类型。 更多...

## 函数

template<typename _tIn , typename _tOut , typename _fComp = less<>>
_tOut | ystdex::clamp_range (_tIn first, _tIn last, _tOut result, const typename std::iterator_traits< _tIn >::value_type &lo, const typename std::iterator_traits< _tIn >::value_type &hi, _fComp comp=_fComp())
const char * | ystdex::bad_any_cast::from () const
template<typename _type , class _tAlloc , typename... _tParams>
decay_t< _type > & | ystdex::details::any_emplace< _tAny >::emplace (std::allocator_arg_t, const _tAlloc &a, _tParams &&... args)
template<typename _type , class _tAlloc , typename _tOther , typename... _tParams>
decay_t< _type > & | ystdex::details::any_emplace< _tAny >::emplace (std::allocator_arg_t, const _tAlloc &a, std::initializer_list< _tOther > il, _tParams &&... args)
template<typename _tHolder , typename... _tParams>
decay_t< _tHolder > & | ystdex::details::any_emplace< _tAny >::emplace (any_ops::use_holder_t, _tParams &&... args)
template<typename _type , class _tAlloc , typename = exclude_self_t<any, _type>, typename = exclude_tag_t<_type>>
| ystdex::any::any (std::allocator_arg_t, const _tAlloc &a, _type &&x)
template<typename _type , class _tAlloc , typename... _tParams, typename = enable_if_t<is_constructible<decay_t<_type>, _tParams...>::value>>
| ystdex::any::any (std::allocator_arg_t, const _tAlloc &a, in_place_type_t< _type >, _tParams &&... args)
template<typename _type , typename _type2 , class _tAlloc , typename... _tParams, typename = enable_if_t<is_constructible<decay_t<_type>, std::initializer_list<_type2>&, _tParams...>::value>>
| ystdex::any::any (std::allocator_arg_t, const _tAlloc &a, in_place_type_t< _type >, std::initializer_list< _type2 > il, _tParams &&... args)
template<class _tAlloc >
| ystdex::any::any (std::allocator_arg_t, const _tAlloc &a, const any &x)
template<class _tAlloc >
| ystdex::any::any (std::allocator_arg_t, const _tAlloc &a, any &&x)
void * | ystdex::any::get () const
template<typename _type >
_type * | ystdex::any::try_get_object_ptr ()
| 尝试取目标指针：存储目标类型和模板参数相同且不存在持有者抛出的异常。 更多...
bool | ystdex::hold_same (const any &x, const any &y)
| 判断是否持有相同对象。 更多...
template<class _tAlloc >
| ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base (std::allocator_arg_t, const _tAlloc &)
template<class _tAlloc >
| ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base (std::allocator_arg_t, const _tAlloc &, nullptr_t, const _tAlloc &)
template<typename _fCallable , class _tAlloc , typename = exclude_self_t<function_base, _fCallable>, typename = enable_if_t<is_invocable_r<_tRet, _fCallable&, _tParams...>::value>>
| ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base (std::allocator_arg_t, const _tAlloc &a, _fCallable f)
template<class _tAlloc >
| ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base (std::allocator_arg_t, const _tAlloc &a, const function_base &x)
template<class _tAlloc >
| ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base (std::allocator_arg_t, const _tAlloc &a, function_base &&x)
template<typename _type , typename _tValue >
std::shared_ptr< _type > | ystdex::make_shared (std::initializer_list< _tValue > il)
| 使用指定类型的初始化列表构造指定类型的 std::shared_ptr 对象。 更多...
void | ystdex::pmr::adjust_pool_options (pool_options &)
| 修改池选项的默认值。 更多...
template<typename _type >
_type & | ystdex::cpp2017::ref_opt (optional< _type > &&o)
| 从 optional 实例的临时对象取左值引用。 更多...

## 详细描述

YBase 替代扩展。

自从
  build 837

YBase 提供的替代 ISO C++ 扩展特性的接口。 不是原始的被替代的接口但在包含其规格（如标准库头）内的接口。

## 类型定义说明

## ◆ string_view_t

template<class _tString >

using ystdex::string_view_t = typedef basic_string_view<typename _tString::value_type>

取字符串类类型的值类型对应的字符串视图类型。

自从
  build 836

在文件 string_view.hpp 第 450 行定义.

## 函数说明

## ◆ adjust_pool_options()

void ystdex::pmr::adjust_pool_options | ( | pool_options & | opts | ) |

修改池选项的默认值。

自从
  build 863

后置条件
  参数中的数据成员不含 0 值。

注解
  每区块最大块数限制为 `size_t`((sizeof(size_t) * CHAR_BIT) << 16U) 。
  最大块分配大小限制为 `size_t`((sizeof(size_t) * CHAR_BIT) << 18U) 。

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

引用了 ystdex::ceiling_lb(), ystdex::is_power_of_2_positive(), ystdex::pmr::cpp2017::pool_options::largest_required_pool_block, ystdex::pmr::cpp2017::pool_options::max_blocks_per_chunk, platform::size_t , 以及 yconstexpr.

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

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

## ◆ any() [1/5]

template<typename _type , class _tAlloc , typename = exclude_self_t<any, _type>, typename = exclude_tag_t<_type>>

ystdex::any::any | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | _type && | x
| ) |  |

inline

自从
  build 849

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

## ◆ any() [2/5]

template<class _tAlloc >

ystdex::any::any | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | any && | x
| ) |  |

inline

异常

  allocator_mismatch_error | 分配器不兼容。

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

引用了 YSLib::a, ystdex::any_ops::transfer_with_allocator , 以及 x.

## ◆ any() [3/5]

template<class _tAlloc >

ystdex::any::any | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | const any & | x
| ) |  |

inline

异常

  allocator_mismatch_error | 分配器不兼容。

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

引用了 YSLib::a, ystdex::any_ops::clone_with_allocator , 以及 x.

## ◆ any() [4/5]

template<typename _type , class _tAlloc , typename... _tParams, typename = enable_if_t<is_constructible<decay_t<_type>, _tParams...>::value>>

ystdex::any::any | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | in_place_type_t< _type > | ,
|  | _tParams &&... | args
| ) |  |

inline

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

## ◆ any() [5/5]

template<typename _type , typename _type2 , class _tAlloc , typename... _tParams, typename = enable_if_t<is_constructible<decay_t<_type>, std::initializer_list<_type2>&, _tParams...>::value>>

ystdex::any::any | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | in_place_type_t< _type > | ,
|  | std::initializer_list< _type2 > | il,
|  | _tParams &&... | args
| ) |  |

inline

自从
  build 848

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

## ◆ clamp_range()

template<typename _tIn , typename _tOut , typename _fComp = less<>>

_tOut ystdex::clamp_range | ( | _tIn | first,
|  | _tIn | last,
|  | _tOut | result,
|  | const typename std::iterator_traits< _tIn >::value_type & | lo,
|  | const typename std::iterator_traits< _tIn >::value_type & | hi,
|  | _fComp | comp = `_fComp()`
| ) |  |

inline

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

引用了 ystdex::cpp2017::clamp().

函数调用图:

## ◆ emplace() [1/3]

template<class _tAny >
template<typename _tHolder , typename... _tParams>

decay_t<_tHolder>& ystdex::details::any_emplace< _tAny >::emplace | ( | any_ops::use_holder_t | ,
|  | _tParams &&... | args
| ) |  |

inline

自从
  build 848

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

## ◆ emplace() [2/3]

template<class _tAny >
template<typename _type , class _tAlloc , typename... _tParams>

decay_t<_type>& ystdex::details::any_emplace< _tAny >::emplace | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | _tParams &&... | args
| ) |  |

inline

自从
  build 864

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

## ◆ emplace() [3/3]

template<class _tAny >
template<typename _type , class _tAlloc , typename _tOther , typename... _tParams>

decay_t<_type>& ystdex::details::any_emplace< _tAny >::emplace | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | std::initializer_list< _tOther > | il,
|  | _tParams &&... | args
| ) |  |

inline

自从
  build 864

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

## ◆ from()

const char * ystdex::bad_any_cast::from | ( |  | ) | const

在文件 any.cpp 第 44 行定义.

引用了 ystdex::bad_any_cast::from_type().

函数调用图:

## ◆ function_base() [1/5]

template<class _tTraits , typename _tRet , typename... _tParams>
template<class _tAlloc >

ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base | ( | std::allocator_arg_t | ,
|  | const _tAlloc & |
| ) |  |

inline

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

## ◆ function_base() [2/5]

template<class _tTraits , typename _tRet , typename... _tParams>
template<class _tAlloc >

ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | ,
|  | nullptr_t | ,
|  | const _tAlloc & |
| ) |  |

inline

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

## ◆ function_base() [3/5]

template<class _tTraits , typename _tRet , typename... _tParams>
template<typename _fCallable , class _tAlloc , typename = exclude_self_t<function_base, _fCallable>, typename = enable_if_t<is_invocable_r<_tRet, _fCallable&, _tParams...>::value>>

ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | _fCallable | f
| ) |  |

inline

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

引用了 YSLib::a, CHRLib::f(), ystdex::function_not_empty(), ystdex::invoke() , 以及 yunseq.

函数调用图:

## ◆ function_base() [4/5]

template<class _tTraits , typename _tRet , typename... _tParams>
template<class _tAlloc >

ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | const function_base< _tTraits, _tRet(_tParams...)> & | x
| ) |  |

inline

异常

  allocator_mismatch_error | 分配器不兼容。

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

## ◆ function_base() [5/5]

template<class _tTraits , typename _tRet , typename... _tParams>
template<class _tAlloc >

ystdex::function_base< _tTraits, _tRet(_tParams...)>::function_base | ( | std::allocator_arg_t | ,
|  | const _tAlloc & | a,
|  | function_base< _tTraits, _tRet(_tParams...)> && | x
| ) |  |

inline

异常

  allocator_mismatch_error | 分配器不兼容。

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

## ◆ get()

void* ystdex::any::get | ( |  | ) | const

inline

自从
  build 853

异常

  异常中立：由持有者抛出。 |

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

## ◆ hold_same()

bool ystdex::hold_same | ( | const any & | x,
|  | const any & | y
| ) |  |

inline

判断是否持有相同对象。

异常

  异常中立：由持有者抛出。 |

自从
  build 748

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

引用了 x , 以及 YSLib::UI::y.

## ◆ make_shared()

template<typename _type , typename _tValue >

std::shared_ptr<_type> ystdex::make_shared | ( | std::initializer_list< _tValue > | il | ) |

inline

使用指定类型的初始化列表构造指定类型的 std::shared_ptr 对象。

模板参数

  _tValue | 初始化列表的元素类型。

自从
  build 529

在文件 memory.hpp 第 855 行定义.

被这些函数引用 YSLib::UI::ActAfter(), ystdex::pack_shared_task() , 以及 ystdex::thread_pool::wait_to_enqueue().

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

## ◆ ref_opt()

template<typename _type >

_type& ystdex::cpp2017::ref_opt | ( | optional< _type > && | o | ) |

inline

从 optional 实例的临时对象取左值引用。

警告
  应仅在确认生存期时使用。

在文件 optional.h 第 936 行定义.

## ◆ try_get_object_ptr()

template<typename _type >

_type* ystdex::any::try_get_object_ptr | ( |  | ) |

inline

尝试取目标指针：存储目标类型和模板参数相同且不存在持有者抛出的异常。

返回
  若存在满足条件的结果则为指向存储对象的指针值，否则为空指针值。

自从
  build 854

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