YSTest: ystdex::cpp2014 命名空间参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 类型定义 | 函数
ystdex::cpp2014 命名空间参考
Helper Functions

使用 new 和指定参数构造指定类型的 std::unique_ptr 对象。 更多...

## 类

struct | bit_and
| 位与仿函数。 更多...
struct | bit_and< void >
struct | bit_not
| 位取反仿函数。 更多...
struct | bit_not< void >
struct | bit_or
| 位或仿函数。 更多...
struct | bit_or< void >
struct | bit_xor
| 位异或仿函数。 更多...
struct | bit_xor< void >
struct | divides
| 除法仿函数。 更多...
struct | divides< void >
struct | equal_to
| 等于关系仿函数。 更多...
struct | equal_to< void >
struct | greater
| 大于关系仿函数。 更多...
struct | greater< _type * >
struct | greater< void >
struct | greater_equal
| 大于等于关系仿函数。 更多...
struct | greater_equal< _type * >
struct | greater_equal< void >
struct | integer_sequence
struct | is_null_pointer
struct | less
| 小于关系仿函数。 更多...
struct | less< _type * >
struct | less< void >
struct | less_equal
| 小于等于关系仿函数。 更多...
struct | less_equal< _type * >
struct | less_equal< void >
struct | logical_and
| 逻辑与仿函数。 更多...
struct | logical_and< void >
struct | logical_not
| 逻辑非仿函数。 更多...
struct | logical_not< void >
struct | logical_or
| 逻辑或仿函数。 更多...
struct | logical_or< void >
struct | minus
| 减法仿函数。 更多...
struct | minus< void >
struct | modulus
| 模运算仿函数。 更多...
struct | modulus< void >
struct | multiplies
| 乘法仿函数。 更多...
struct | multiplies< void >
struct | negate
| 取反仿函数。 更多...
struct | negate< void >
struct | not_equal_to
| 不等于关系仿函数。 更多...
struct | not_equal_to< void >
struct | plus
| 加法仿函数。 更多...
struct | plus< void >

## 类型定义

template<size_t... _vSeq>
using | index_sequence = integer_sequence< size_t, _vSeq... >
template<typename _tInt , size_t _vN>
using | make_integer_sequence = make_natural_sequence_t< _tInt, _vN >
template<size_t _vN>
using | make_index_sequence = make_integer_sequence< size_t, _vN >
template<typename... _types>
using | index_sequence_for = make_index_sequence< sizeof...(_types)>
template<typename _type >
using | remove_const_t = typename remove_const< _type >::type
| ISO C++ 14 兼容类型操作别名。 更多...
template<typename _type >
using | remove_volatile_t = typename remove_volatile< _type >::type
template<typename _type >
using | remove_cv_t = typename remove_cv< _type >::type
template<typename _type >
using | add_const_t = typename add_const< _type >::type
template<typename _type >
using | add_volatile_t = typename add_volatile< _type >::type
template<typename _type >
using | add_cv_t = typename add_cv< _type >::type
template<typename _type >
using | remove_reference_t = typename remove_reference< _type >::type
template<typename _type >
using | add_lvalue_reference_t = typename add_lvalue_reference< _type >::type
template<typename _type >
using | add_rvalue_reference_t = typename add_rvalue_reference< _type >::type
template<typename _type >
using | make_signed_t = typename make_signed< _type >::type
template<typename _type >
using | make_unsigned_t = typename make_unsigned< _type >::type
template<typename _type >
using | remove_extent_t = typename remove_extent< _type >::type
template<typename _type >
using | remove_all_extents_t = typename remove_all_extents< _type >::type
template<typename _type >
using | remove_pointer_t = typename remove_pointer< _type >::type
template<typename _type >
using | 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 | aligned_storage_t = typename aligned_storage< _vLen, _vAlign >::type
template<size_t _vLen, typename... _types>
using | aligned_union_t = typename aligned_union< _vLen, _types... >::type
template<typename _type >
using | decay_t = typename decay< _type >::type
template<bool _bCond, typename _type = void>
using | enable_if_t = typename enable_if< _bCond, _type >::type
template<bool _bCond, typename _type , typename _type2 >
using | conditional_t = typename conditional< _bCond, _type, _type2 >::type
template<typename... _types>
using | common_type_t = typename common_type< _types... >::type
template<typename _type >
using | underlying_type_t = typename underlying_type< _type >::type
template<size_t _vIdx, typename _type >
using | tuple_element_t = _t< std::tuple_element< _vIdx, _type > >

## 函数

template<typename _tIn1 , typename _tIn2 , typename _fBiPred >
bool | equal (_tIn1 first1, _tIn1 last1, _tIn2 first2, _tIn2 last2, _fBiPred binary_pred)
template<typename _tIn1 , typename _tIn2 >
bool | equal (_tIn1 first1, _tIn1 last1, _tIn2 first2, _tIn2 last2)
template<typename _type , typename _fComp = less<_type>>
const _type & | min (const _type &a, const _type &b, _fComp comp=less< _type >())
| 取较小的元素。 更多...
template<typename _type , typename _fComp = less<_type>>
const _type & | min (std::initializer_list< _type > t, _fComp comp=less< _type >(), size_t n=0)
template<typename _type , typename _fComp = less<_type>>
const _type & | max (const _type &a, const _type &b, _fComp comp=less< _type >())
| 取较大的元素。 更多...
template<typename _type , typename _fComp = less<_type>>
const _type & | max (std::initializer_list< _type > t, _fComp comp=less< _type >(), size_t n=0)
template<typename _tIter >
reverse_iterator< _tIter > | make_reverse_iterator (_tIter i)
| 构造反向迭代器。 更多...
template<typename _type , typename... _tParams>
enable_if_t<!is_array< _type >::value, std::unique_ptr< _type > > | make_unique (_tParams &&... args)
template<typename _type , typename... _tParams>
enable_if_t< is_array< _type >::value &&extent< _type >::value==0, std::unique_ptr< _type > > | make_unique (size_t size)
template<typename _type , typename... _tParams>
enable_if_t< extent< _type >::value !=0 > | make_unique (_tParams &&...)=delete
template<typename _tRange >
auto | cbegin (const _tRange &c) -> decltype(ystdex::begin(c))
template<typename _tRange >
auto | cend (const _tRange &c) -> decltype(ystdex::end(c))
template<typename _tElem >
const _tElem * | cbegin (std::initializer_list< _tElem > il)
template<typename _tElem >
const _tElem * | cend (std::initializer_list< _tElem > il)
template<typename _tElem >
reverse_iterator< const _tElem * > | crbegin (std::initializer_list< _tElem > il)
template<typename _tElem >
reverse_iterator< const _tElem * > | crend (std::initializer_list< _tElem > il)
template<typename _type , typename _type2 = _type>
_type | exchange (_type &obj, _type2 &&new_val)
| 交换值并返回旧值。 更多...

## 详细描述

使用 new 和指定参数构造指定类型的 std::unique_ptr 对象。

包含 ISO C++ 2014 引入的名称的命名空间。

自从
  build 627

参见
  LWG 2350 。

自从
  build 836
  build 679
  build 833

模板参数

  _type | 被指向类型。

自从
  build 607
  build 624

## 类型定义说明

## ◆ add_const_t

template<typename _type >

using ystdex::cpp2014::add_const_t = typedef typename add_const<_type>::type

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

## ◆ add_cv_t

template<typename _type >

using ystdex::cpp2014::add_cv_t = typedef typename add_cv<_type>::type

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

## ◆ add_lvalue_reference_t

template<typename _type >

using ystdex::cpp2014::add_lvalue_reference_t = typedef typename add_lvalue_reference<_type>::type

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

## ◆ add_pointer_t

template<typename _type >

using ystdex::cpp2014::add_pointer_t = typedef typename add_pointer<_type>::type

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

## ◆ add_rvalue_reference_t

template<typename _type >

using ystdex::cpp2014::add_rvalue_reference_t = typedef typename add_rvalue_reference<_type>::type

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

## ◆ add_volatile_t

template<typename _type >

using ystdex::cpp2014::add_volatile_t = typedef typename add_volatile<_type>::type

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

## ◆ aligned_storage_t

template<size_t _vLen, size_t _vAlign = std::alignment_of< typename aligned_storage<_vLen>::type >::value>

using ystdex::cpp2014::aligned_storage_t = typedef typename aligned_storage<_vLen, _vAlign>::type

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

## ◆ aligned_union_t

template<size_t _vLen, typename... _types>

using ystdex::cpp2014::aligned_union_t = typedef typename aligned_union<_vLen, _types...>::type

自从
  build 339

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

## ◆ common_type_t

template<typename... _types>

using ystdex::cpp2014::common_type_t = typedef typename common_type<_types...>::type

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

## ◆ conditional_t

template<bool _bCond, typename _type , typename _type2 >

using ystdex::cpp2014::conditional_t = typedef typename conditional<_bCond, _type, _type2>::type

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

## ◆ decay_t

template<typename _type >

using ystdex::cpp2014::decay_t = typedef typename decay<_type>::type

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

## ◆ enable_if_t

template<bool _bCond, typename _type = void>

using ystdex::cpp2014::enable_if_t = typedef typename enable_if<_bCond, _type>::type

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

## ◆ index_sequence_for

template<typename... _types>

using ystdex::cpp2014::index_sequence_for = typedef make_index_sequence<sizeof...(_types)>

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

## ◆ make_index_sequence

template<size_t _vN>

using ystdex::cpp2014::make_index_sequence = typedef make_integer_sequence<size_t, _vN>

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

## ◆ make_signed_t

template<typename _type >

using ystdex::cpp2014::make_signed_t = typedef typename make_signed<_type>::type

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

## ◆ make_unsigned_t

template<typename _type >

using ystdex::cpp2014::make_unsigned_t = typedef typename make_unsigned<_type>::type

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

## ◆ remove_all_extents_t

template<typename _type >

using ystdex::cpp2014::remove_all_extents_t = typedef typename remove_all_extents<_type>::type

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

## ◆ remove_cv_t

template<typename _type >

using ystdex::cpp2014::remove_cv_t = typedef typename remove_cv<_type>::type

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

## ◆ remove_extent_t

template<typename _type >

using ystdex::cpp2014::remove_extent_t = typedef typename remove_extent<_type>::type

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

## ◆ remove_pointer_t

template<typename _type >

using ystdex::cpp2014::remove_pointer_t = typedef typename remove_pointer<_type>::type

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

## ◆ remove_reference_t

template<typename _type >

using ystdex::cpp2014::remove_reference_t = typedef typename remove_reference<_type>::type

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

## ◆ remove_volatile_t

template<typename _type >

using ystdex::cpp2014::remove_volatile_t = typedef typename remove_volatile<_type>::type

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

## ◆ underlying_type_t

template<typename _type >

using ystdex::cpp2014::underlying_type_t = typedef typename underlying_type<_type>::type

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

## 函数说明

## ◆ cbegin() [1/2]

template<typename _tRange >

auto ystdex::cpp2014::cbegin | ( | const _tRange & | c | ) | -> decltype(ystdex::begin(c))

inline

自从
  build 834

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

引用了 ystdex::cpp2017::begin() , 以及 CHRLib::c.

被这些函数引用 YSLib::UI::ImplDeDtor(), YSLib::IO::ImplExpr(), YSLib::Messaging::MessageQueue::Peek() , 以及 YSLib::Messaging::MessageQueue::Pop().

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

## ◆ cbegin() [2/2]

template<typename _tElem >

const _tElem* ystdex::cpp2014::cbegin | ( | std::initializer_list< _tElem > | il | ) |

inline

自从
  build 664

参见
  CWG 1591 。

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

## ◆ cend() [1/2]

template<typename _tRange >

auto ystdex::cpp2014::cend | ( | const _tRange & | c | ) | -> decltype(ystdex::end(c))

inline

自从
  build 834

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

引用了 CHRLib::c , 以及 ystdex::cpp2017::end().

被这些函数引用 YSLib::UI::ImplDeDtor() , 以及 YSLib::IO::ImplExpr().

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

## ◆ cend() [2/2]

template<typename _tElem >

const _tElem* ystdex::cpp2014::cend | ( | std::initializer_list< _tElem > | il | ) |

inline

参见
  CWG 1591 。

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

## ◆ crbegin()

template<typename _tElem >

reverse_iterator<const _tElem*> ystdex::cpp2014::crbegin | ( | std::initializer_list< _tElem > | il | ) |

inline

自从
  build 833

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

引用了 ystdex::rbegin().

函数调用图:

## ◆ crend()

template<typename _tElem >

reverse_iterator<const _tElem*> ystdex::cpp2014::crend | ( | std::initializer_list< _tElem > | il | ) |

inline

自从
  build 833

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

引用了 ystdex::rend().

函数调用图:

## ◆ equal() [1/2]

template<typename _tIn1 , typename _tIn2 >

bool ystdex::cpp2014::equal | ( | _tIn1 | first1,
|  | _tIn1 | last1,
|  | _tIn2 | first2,
|  | _tIn2 | last2
| ) |  |

inline

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

引用了 equal().

被这些函数引用 equal().

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

## ◆ equal() [2/2]

template<typename _tIn1 , typename _tIn2 , typename _fBiPred >

bool ystdex::cpp2014::equal | ( | _tIn1 | first1,
|  | _tIn1 | last1,
|  | _tIn2 | first2,
|  | _tIn2 | last2,
|  | _fBiPred | binary_pred
| ) |  |

inline

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

引用了 ystdex::any_ops::distance , 以及 equal().

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

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

## ◆ exchange()

template<typename _type , typename _type2 = _type>

_type ystdex::cpp2014::exchange | ( | _type & | obj,
|  | _type2 && | new_val
| ) |  |

交换值并返回旧值。

返回
  被替换的原值。

参见
  WG21 N3797 20.2.3[utility.exchange] 。
  http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2013/n3668.html 。

自从
  build 517

在文件 swap.hpp 第 535 行定义.

引用了 yforward.

## ◆ make_reverse_iterator()

template<typename _tIter >

reverse_iterator<_tIter> ystdex::cpp2014::make_reverse_iterator | ( | _tIter | i | ) |

构造反向迭代器。

参见
  WG21 N3936 24.5.1.3.21[reverse.iter.make] 。
  LWG 2285 。

自从
  build 531
  build 833

在文件 iterator_op.hpp 第 110 行定义.

引用了 YSLib::i.

## ◆ make_unique() [1/3]

template<typename _type , typename... _tParams>

enable_if_t<!is_array<_type>::value, std::unique_ptr<_type> > ystdex::cpp2014::make_unique | ( | _tParams &&... | args | ) |

inline

注解
  使用值初始化。

参见
  http://herbsutter.com/gotw/_102/ 。
  WG21 N3656 。
  WG21 N3797 20.7.2[memory.syn] 。

自从
  build 476

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

引用了 CHRLib::args , 以及 yforward.

被这些函数引用 platform::ugetcwd().

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

## ◆ make_unique() [2/3]

template<typename _type , typename... _tParams>

enable_if_t<extent<_type>::value != 0> ystdex::cpp2014::make_unique | ( | _tParams && | ... | ) |

delete

## ◆ make_unique() [3/3]

template<typename _type , typename... _tParams>

enable_if_t<is_array<_type>::value && extent<_type>::value == 0, std::unique_ptr<_type> > ystdex::cpp2014::make_unique | ( | size_t | size | ) |

inline

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

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

函数调用图:

## ◆ max() [1/2]

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

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

inline

取较大的元素。

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

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

引用了 YSLib::a.

被这些函数引用 platform::FetchLimit(), std::numeric_limits< ystdex::fixed_point< _tBase, _vInt, _vFrac > >::max(), ystdex::cpp2017::basic_string_view< _tChar, _tTraits >::max_size(), ystdex::narrow_cast(), ystdex::details::not_widen_cast() , 以及 ystdex::not_widen_cast().

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

## ◆ max() [2/2]

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

const _type& ystdex::cpp2014::max | ( | std::initializer_list< _type > | t,
|  | _fComp | comp = `less<_type>()`,
|  | size_t | n = `0`
| ) |  |

inline

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

引用了 max().

函数调用图:

## ◆ min()

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

const _type& ystdex::cpp2014::min | ( | std::initializer_list< _type > | t,
|  | _fComp | comp = `less<_type>()`,
|  | size_t | n = `0`
| ) |  |

inline

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

引用了 min().

函数调用图: