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

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 类型定义 | 函数 | 变量
ystdex::cpp2017 命名空间参考

取约束范围的值。 更多...

## 类

struct | allocator_traits
class | bad_optional_access
| 可选值操作失败异常。 更多...
class | basic_string
class | basic_string_view
struct | invoke_result
struct | is_invocable
struct | is_invocable_r
struct | is_nothrow_invocable
struct | is_nothrow_invocable_r
struct | is_nothrow_swappable
struct | is_nothrow_swappable_with
| 判断是否可以无抛出地调用 `swap` 。 更多...
struct | is_swappable
struct | is_swappable_with
| 判断是否可以调用 `swap` 。 更多...
struct | nullopt_t
| 无值状态指示。 更多...
class | optional
| 可选值对象包装。 更多...
struct | optional_last_value
| 合并可选值序列。 更多...
struct | optional_last_value< void >
class | reverse_iterator

## 类型定义

template<bool _b>
using | bool_constant = bool_< _b >
| bool 常量。 更多...
template<class... _b>
using | conjunction = and_< _b... >
template<class... _b>
using | disjunction = or_< _b... >
template<class _b >
using | negation = not_< _b >
template<typename _fCallable , typename... _tParams>
using | invoke_result_t = _t< invoke_result< _fCallable, _tParams... > >
template<typename... _types>
using | void_t = well_formed_t< void, _types... >
using | string = basic_string< char >
using | u16string = basic_string< char16_t >
using | u32string = basic_string< char32_t >
using | wstring = basic_string< wchar_t >
using | string_view = basic_string_view< char >
using | u16string_view = basic_string_view< char16_t >
using | u32string_view = basic_string_view< char32_t >
using | wstring_view = basic_string_view< wchar_t >

## 函数

template<typename _type , typename _fComp >
const _type & | clamp (const _type &v, const _type &lo, const _type &hi, _fComp comp)
template<typename _type >
const _type & | clamp (const _type &v, const _type &lo, const _type &hi)
template<typename _func , class _tTuple >
auto | apply (_func &&f, _tTuple &&t) -> decltype(call_projection< _tTuple, make_index_sequence< std::tuple_size< decay_t< _tTuple >>::value >>::apply_invoke(std::forward< decltype(f)>(f), std::forward< decltype(t)>(t)))
| 应用函数对象和参数元组。 更多...
template<typename _type , class _tTuple >
_type | make_from_tuple (_tTuple &&t)
| 从元组构造指定类型的值。 更多...
template<typename _type , typename _tOther >
auto | operator!= (const optional< _type > &x, const optional< _tOther > &y) -> optional_relop_t< decltype(std::declval< _type >() !=std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator< (const optional< _type > &x, const optional< _tOther > &y) -> optional_relop_t< decltype(std::declval< _type >()< std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator> (const optional< _type > &x, const optional< _tOther > &y) -> optional_relop_t< decltype(std::declval< _type >() > std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator<= (const optional< _type > &x, const optional< _tOther > &y) -> optional_relop_t< decltype(std::declval< _type >()<=std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator>= (const optional< _type > &x, const optional< _tOther > &y) -> optional_relop_t< decltype(std::declval< _type >() >=std::declval< _tOther >())>
template<typename _type >
bool | operator== (const optional< _type > &x, nullopt_t)
template<typename _type >
bool | operator< (const optional< _type > &, nullopt_t)
template<typename _type >
bool | operator< (nullopt_t, const optional< _type > &y)
template<typename _type , typename _tOther >
auto | operator== (const optional< _type > &x, const _tOther &y) -> optional_relop_t< decltype(std::declval< _type >()==std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator== (const _tOther &x, const optional< _type > &y) -> optional_relop_t< decltype(std::declval< _tOther >()==std::declval< _type >())>
template<typename _type , typename _tOther >
auto | operator!= (const optional< _type > &x, const _tOther &y) -> optional_relop_t< decltype(std::declval< _type >() !=std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator!= (const _tOther &x, const optional< _type > &y) -> optional_relop_t< decltype(std::declval< _tOther >() !=std::declval< _type >())>
template<typename _type , typename _tOther >
auto | operator< (const optional< _type > &x, const _tOther &y) -> optional_relop_t< decltype(std::declval< _type >()< std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator< (const _tOther &x, const optional< _type > &y) -> optional_relop_t< decltype(std::declval< _tOther >()< std::declval< _type >())>
template<typename _type , typename _tOther >
auto | operator> (const optional< _type > &x, const _tOther &y) -> optional_relop_t< decltype(std::declval< _type >() > std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator> (const _tOther &x, const optional< _type > &y) -> optional_relop_t< decltype(std::declval< _tOther >() > std::declval< _type >())>
template<typename _type , typename _tOther >
auto | operator<= (const optional< _type > &x, const _tOther &y) -> optional_relop_t< decltype(std::declval< _type >()<=std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator<= (const _tOther &x, const optional< _type > &y) -> optional_relop_t< decltype(std::declval< _tOther >()<=std::declval< _type >())>
template<typename _type , typename _tOther >
auto | operator>= (const optional< _type > &x, const _tOther &y) -> optional_relop_t< decltype(std::declval< _type >() >=std::declval< _tOther >())>
template<typename _type , typename _tOther >
auto | operator>= (const _tOther &x, const optional< _type > &y) -> optional_relop_t< decltype(std::declval< _tOther >() >=std::declval< _type >())>
template<typename _type >
void | swap (optional< _type > &x, optional< _type > &y)
template<typename _type , typename... _tParams>
optional< _type > | make_optional (_tParams &&... args)
| 创建 optional 对象。 更多...
template<typename _type , typename _tOther , typename... _tParams>
optional< _type > | make_optional (std::initializer_list< _tOther > il, _tParams &&... args)
template<typename _type , typename... _tParams>
optional< _type > | make_optional_inplace (_tParams &&... args)
| 使用指定参数构造指定 optional 实例的值。 更多...
template<typename _type >
_type & | ref_opt (optional< _type > &&o)
| 从 optional 实例的临时对象取左值引用。 更多...
template<typename _type >
_type & | ref_opt ()
template<typename _type >
void | destroy_at (_type *location)
| 原地销毁。 更多...
template<typename _tFwd >
void | destroy (_tFwd first, _tFwd last)
template<typename _tFwd , typename _tSize >
_tFwd | destroy_n (_tFwd first, _tSize n)
template<typename _tFwd >
void | uninitialized_default_construct (_tFwd first, _tFwd last)
template<typename _tFwd , typename _tSize >
_tFwd | uninitialized_default_construct_n (_tFwd first, _tSize n)
template<typename _tFwd >
void | uninitialized_value_construct (_tFwd first, _tFwd last)
template<typename _tFwd , typename _tSize >
_tFwd | uninitialized_value_construct_n (_tFwd first, _tSize n)
template<typename _tIn , class _tFwd >
_tFwd | uninitialized_move (_tIn first, _tIn last, _tFwd result)
| 转移初始化范围。 更多...
template<typename _tIn , typename _tSize , class _tFwd >
std::pair< _tIn, _tFwd > | uninitialized_move_n (_tIn first, _tSize n, _tFwd result)
template<class _tRange >
auto | begin (_tRange &c) -> decltype(c.begin())
template<class _tRange >
auto | begin (const _tRange &c) -> decltype(c.begin())
template<typename _type , size_t _vN>
_type * | begin (_type(&array)[_vN])
template<class _tRange >
auto | end (_tRange &c) -> decltype(c.end())
template<class _tRange >
auto | end (const _tRange &c) -> decltype(c.end())
template<typename _type , size_t _vN>
_type * | end (_type(&array)[_vN])
template<class _tRange >
auto | rbegin (_tRange &c) -> decltype(c.rbegin())
template<class _tRange >
auto | rbegin (const _tRange &c) -> decltype(c.rbegin())
template<typename _type , size_t _vN>
reverse_iterator< _type * > | rbegin (_type(&array)[_vN])
template<typename _tElem >
reverse_iterator< const _tElem * > | rbegin (std::initializer_list< _tElem > il)
template<class _tRange >
auto | rend (_tRange &c) -> decltype(c.rend())
template<class _tRange >
auto | rend (const _tRange &c) -> decltype(c.rend())
template<typename _type , size_t _vN>
reverse_iterator< _type * > | rend (_type(&array)[_vN])
template<typename _tElem >
reverse_iterator< const _tElem * > | rend (std::initializer_list< _tElem > il)
template<typename _tRange >
auto | crbegin (const _tRange &c) -> decltype(ystdex::rbegin(c))
template<typename _tRange >
auto | crend (const _tRange &c) -> decltype(ystdex::rend(c))
template<class _tRange >
auto | size (const _tRange &c) -> decltype(c.size())
template<typename _type , size_t _vN>
size_t | size (const _type(&)[_vN])
template<typename _tElem >
size_t | size (std::initializer_list< _tElem > il)
template<class _tRange >
auto | empty (const _tRange &c) -> decltype(c.empty())
template<typename _type , size_t _vN>
bool | empty (const _type(&)[_vN])
template<typename _tElem >
bool | empty (std::initializer_list< _tElem > il)
template<typename _tRange >
auto | data (_tRange &c) -> decltype(c.data())
template<typename _tRange >
auto | data (const _tRange &c) -> decltype(c.data())
template<typename _type , size_t _vN>
_type * | data (_type(&array)[_vN])
template<typename _tElem >
const _tElem * | data (std::initializer_list< _tElem > il)
template<typename _tChar , class _tTraits >
bool | operator== (basic_string_view< _tChar, _tTraits > x, decay_t< basic_string_view< _tChar, _tTraits >> y)
template<typename _tChar , class _tTraits >
bool | operator== (decay_t< basic_string_view< _tChar, _tTraits >> x, basic_string_view< _tChar, _tTraits > y)
template<typename _tChar , class _tTraits >
bool | operator< (basic_string_view< _tChar, _tTraits > x, basic_string_view< _tChar, _tTraits > y)
template<typename _tChar , class _tTraits >
bool | operator< (basic_string_view< _tChar, _tTraits > x, decay_t< basic_string_view< _tChar, _tTraits >> y)
template<typename _tChar , class _tTraits >
bool | operator< (decay_t< basic_string_view< _tChar, _tTraits >> x, basic_string_view< _tChar, _tTraits > y)
template<typename _tChar , class _tTraits >
std::basic_ostream< _tChar, _tTraits > & | operator<< (std::basic_ostream< _tChar, _tTraits > &os, basic_string_view< _tChar, _tTraits > str)
template<typename _type >
add_const_t< _type > & | as_const (_type &t)
| 转换 const 引用。 更多...
template<class _type >
void | as_const (const _type &&)=delete

## 变量

const struct ystdex::cpp2017::nullopt_t | nullptr
template<typename _type >
uniformed_tags::in_place_tag | in_place_type (empty_base< _type >)
template<size_t _vIdx>
uniformed_tags::in_place_tag | in_place_index (size_t_< _vIdx >)

## 详细描述

取约束范围的值。

类容器访问。

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

参见
  WG21 N4536 。

自从
  build 612

参见
  ISO C++17 [alg.clamp] 。
  WG21 P0025R1 。

自从
  build 595
  build 831

参见
  ISO C++17 [utility.inplace] 。

自从
  build 831
  build 835
  build 833
  build 834

参见
  WG21 N4280 。
  ISO C++17 [iterator.container] 。

自从
  build 663
  build 834

## 类型定义说明

## ◆ bool_constant

template<bool _b>

using ystdex::cpp2017::bool_constant = typedef bool_<_b>

bool 常量。

参见
  WG21 N4389 。
  WG21 N4527 20.10.3[meta.help] 。

自从
  build 617

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

## ◆ disjunction

template<class... _b>

using ystdex::cpp2017::disjunction = typedef or_<_b...>

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

## ◆ invoke_result_t

template<typename _fCallable , typename... _tParams>

using ystdex::cpp2017::invoke_result_t = typedef _t<invoke_result<_fCallable, _tParams...> >

在文件 invoke.hpp 第 393 行定义.

## ◆ negation

template<class _b >

using ystdex::cpp2017::negation = typedef not_<_b>

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

## ◆ string

using ystdex::cpp2017::string = typedef basic_string<char>

在文件 string.hpp 第 772 行定义.

## ◆ string_view

using ystdex::cpp2017::string_view = typedef basic_string_view<char>

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

## ◆ u16string

using ystdex::cpp2017::u16string = typedef basic_string<char16_t>

在文件 string.hpp 第 773 行定义.

## ◆ u16string_view

using ystdex::cpp2017::u16string_view = typedef basic_string_view<char16_t>

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

## ◆ u32string

using ystdex::cpp2017::u32string = typedef basic_string<char32_t>

在文件 string.hpp 第 774 行定义.

## ◆ u32string_view

using ystdex::cpp2017::u32string_view = typedef basic_string_view<char32_t>

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

## ◆ wstring

using ystdex::cpp2017::wstring = typedef basic_string<wchar_t>

在文件 string.hpp 第 775 行定义.

## ◆ wstring_view

using ystdex::cpp2017::wstring_view = typedef basic_string_view<wchar_t>

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

## 函数说明

## ◆ apply()

template<typename _func , class _tTuple >

auto ystdex::cpp2017::apply | ( | _func && | f,
|  | _tTuple && | t
| ) |  | -> decltype(call_projection<_tTuple, make_index_sequence< std::tuple_size<decay_t<_tTuple>>::value>>::apply_invoke(std::forward<decltype( f )>( f ), std::forward<decltype( t )>( t )))

inline

应用函数对象和参数元组。

模板参数

  _tTuple | 元组及其引用类型。

参见
  ISO C++17 [tuple.apply] 。

模板参数

  _func | 函数对象及其引用类型。

参见
  ISO C++17 [tuple.apply]/1 。

自从
  build 547

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

引用了 CHRLib::f() , 以及 yforward.

函数调用图:

## ◆ as_const() [1/2]

template<typename _type >

add_const_t<_type>& ystdex::cpp2017::as_const | ( | _type & | t | ) |

inline

转换 const 引用。

参见
  WG21 P0007R1 。

自从
  build 593

在文件 utility.hpp 第 77 行定义.

## ◆ as_const() [2/2]

template<class _type >

void ystdex::cpp2017::as_const | ( | const _type && |  | ) |

delete

自从
  build 833

## ◆ begin() [1/3]

template<class _tRange >

auto ystdex::cpp2017::begin | ( | _tRange & | c | ) | -> decltype(c.begin())

inline

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

引用了 CHRLib::c.

被这些函数引用 YSLib::AccessNode(), YSLib::AccessNodePtr(), YSLib::UI::Styles::AddHandlers(), NPL::A1::DefaultEvaluateLeaf(), ystdex::cpp2017::basic_string< char >::insert(), main(), ystdex::cpp2017::basic_string< char >::replace(), YSLib::ValueNode::SelectChildren() , 以及 YSLib::ValueNode::SplitChildren().

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

## ◆ begin() [2/3]

template<typename _type , size_t _vN>

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

inline

自从
  build 834

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

## ◆ begin() [3/3]

template<class _tRange >

auto ystdex::cpp2017::begin | ( | const _tRange & | c | ) | -> decltype(c.begin())

inline

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

引用了 CHRLib::c.

## ◆ clamp()

template<typename _type >

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

inline

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

引用了 clamp() , 以及 v.

函数调用图:

## ◆ crbegin()

template<typename _tRange >

auto ystdex::cpp2017::crbegin | ( | const _tRange & | c | ) | -> decltype(ystdex::rbegin(c))

inline

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

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

函数调用图:

## ◆ crend()

template<typename _tRange >

auto ystdex::cpp2017::crend | ( | const _tRange & | c | ) | -> decltype(ystdex::rend(c))

inline

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

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

函数调用图:

## ◆ data() [1/4]

template<typename _tRange >

auto ystdex::cpp2017::data | ( | _tRange & | c | ) | -> decltype(c.data())

inline

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

引用了 CHRLib::c.

被这些函数引用 ystdex::cpp2017::basic_string< char >::compare(), NPL::A1::DefaultEvaluateLeaf(), NPL::Environment::Define(), NPL::Environment::DefineChecked(), NPL::A1::EvaluateLeafToken(), NPL::ImplDeDtor(), NPL::IsNPLAExtendedLiteral(), YSLib::Drawing::MultiBitmapData::LockPage(), NPL::Environment::LookupName(), ystdex::cpp2017::basic_string< char >::operator sv_type(), NPL::A1::ParseLeaf(), NPL::A1::ParseLeafWithSourceInformation(), platform::FAT::EntryData::WriteCDateTime(), platform::FAT::EntryData::WriteCluster() , 以及 platform::FAT::EntryData::WriteDateTime().

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

## ◆ data() [2/4]

template<typename _type , size_t _vN>

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

inline

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

## ◆ data() [3/4]

template<typename _tRange >

auto ystdex::cpp2017::data | ( | const _tRange & | c | ) | -> decltype(c.data())

inline

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

引用了 CHRLib::c.

## ◆ data() [4/4]

template<typename _tElem >

const _tElem* ystdex::cpp2017::data | ( | std::initializer_list< _tElem > | il | ) |

inline

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

## ◆ destroy()

template<typename _tFwd >

void ystdex::cpp2017::destroy | ( | _tFwd | first,
|  | _tFwd | last
| ) |  |

inline

参见
  libstdc++ 5 标准库在命名空间 std 内对迭代器范围的实现： _Destroy 模板。

在文件 placement.hpp 第 451 行定义.

引用了 ystdex::addressof() , 以及 destroy_at().

函数调用图:

## ◆ destroy_at()

template<typename _type >

void ystdex::cpp2017::destroy_at | ( | _type * | location | ) |

inline

原地销毁。

注解
  不保证支持带有执行策略的重载。

参见
  ISO C++17 [specialized.destroy] 。
  WG21 P0040R3 。
  https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance 。
  libstdc++ 5 和 Microsoft VC++ 2013 标准库在命名空间 std 内对指针类型的实现： _Destroy 模板。

在文件 placement.hpp 第 442 行定义.

引用了 yconstraint.

## ◆ destroy_n()

template<typename _tFwd , typename _tSize >

_tFwd ystdex::cpp2017::destroy_n | ( | _tFwd | first,
|  | _tSize | n
| ) |  |

inline

在文件 placement.hpp 第 459 行定义.

引用了 ystdex::addressof() , 以及 destroy_at().

函数调用图:

## ◆ empty() [1/3]

template<class _tRange >

auto ystdex::cpp2017::empty | ( | const _tRange & | c | ) | -> decltype(c.empty())

inline

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

引用了 CHRLib::c.

## ◆ empty() [2/3]

template<typename _type , size_t _vN>

bool ystdex::cpp2017::empty | ( | const | _type(&)[_vN] | ) |

inline

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

## ◆ empty() [3/3]

template<typename _tElem >

bool ystdex::cpp2017::empty | ( | std::initializer_list< _tElem > | il | ) |

inline

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

## ◆ end() [1/3]

template<class _tRange >

auto ystdex::cpp2017::end | ( | _tRange & | c | ) | -> decltype(c.end())

inline

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

引用了 CHRLib::c.

被这些函数引用 YSLib::AccessNode(), YSLib::AccessNodePtr(), YSLib::UI::Styles::AddHandlers(), YSLib::Timers::Delay(), main(), YSLib::Messaging::MessageQueue::Remove(), YSLib::DS::UI::DualScreenReader::ScrollByPixel(), ystdex::basic_membuf< _tChar, _tTraits >::seekoff(), YSLib::ValueNode::SelectChildren(), YSLib::ValueNode::SplitChildren(), YSLib::Text::TextFileBuffer::TextFileBuffer() , 以及 CHRLib::YB_NONNULL().

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

## ◆ end() [2/3]

template<typename _type , size_t _vN>

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

inline

自从
  build 834

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

## ◆ end() [3/3]

template<class _tRange >

auto ystdex::cpp2017::end | ( | const _tRange & | c | ) | -> decltype(c.end())

inline

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

引用了 CHRLib::c.

## ◆ make_from_tuple()

template<typename _type , class _tTuple >

_type ystdex::cpp2017::make_from_tuple | ( | _tTuple && | t | ) |

inline

从元组构造指定类型的值。

模板参数

  _type | 被构造的对象类型。

参见
  WG21 N4606 20.5.2.5[tuple.apply]/2 。
  WG21 P0209R2 。

自从
  build 735

在文件 apply.hpp 第 221 行定义.

引用了 yforward.

## ◆ make_optional()

template<typename _type , typename _tOther , typename... _tParams>

optional<_type> ystdex::cpp2017::make_optional | ( | std::initializer_list< _tOther > | il,
|  | _tParams &&... | args
| ) |  |

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

引用了 CHRLib::args, ystdex::uniformed_tags::in_place , 以及 yforward.

## ◆ make_optional_inplace()

template<typename _type , typename... _tParams>

optional<_type> ystdex::cpp2017::make_optional_inplace | ( | _tParams &&... | args | ) |

inline

使用指定参数构造指定 optional 实例的值。

注解
  YBase optional 扩展。

自从
  build 655

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

引用了 CHRLib::args, ystdex::uniformed_tags::in_place , 以及 yforward.

## ◆ operator!=() [1/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator!= | ( | const _tOther & | x,
|  | const optional< _type > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_tOther>() != std::declval<_type>())>

inline

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

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

## ◆ operator!=() [2/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator!= | ( | const optional< _type > & | x,
|  | const _tOther & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() != std::declval<_tOther>())>

inline

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

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

## ◆ operator!=() [3/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator!= | ( | const optional< _type > & | x,
|  | const optional< _tOther > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() != std::declval<_tOther>())>

inline

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

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

## ◆ operator<() [1/8]

template<typename _tChar , class _tTraits >

bool ystdex::cpp2017::operator< | ( | basic_string_view< _tChar, _tTraits > | x,
|  | basic_string_view< _tChar, _tTraits > | y
| ) |  |

inline

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

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

## ◆ operator<() [2/8]

template<typename _tChar , class _tTraits >

bool ystdex::cpp2017::operator< | ( | basic_string_view< _tChar, _tTraits > | x,
|  | decay_t< basic_string_view< _tChar, _tTraits >> | y
| ) |  |

inline

自从
  build 642

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

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

## ◆ operator<() [3/8]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator< | ( | const _tOther & | x,
|  | const optional< _type > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_tOther>() < std::declval<_type>())>

inline

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

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

## ◆ operator<() [4/8]

template<typename _type >

bool ystdex::cpp2017::operator< | ( | const optional< _type > & | ,
|  | nullopt_t |
| ) |  |

inline

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

## ◆ operator<() [5/8]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator< | ( | const optional< _type > & | x,
|  | const _tOther & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() < std::declval<_tOther>())>

inline

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

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

## ◆ operator<() [6/8]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator< | ( | const optional< _type > & | x,
|  | const optional< _tOther > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() < std::declval<_tOther>())>

inline

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

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

## ◆ operator<() [7/8]

template<typename _tChar , class _tTraits >

bool ystdex::cpp2017::operator< | ( | decay_t< basic_string_view< _tChar, _tTraits >> | x,
|  | basic_string_view< _tChar, _tTraits > | y
| ) |  |

inline

自从
  build 642

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

## ◆ operator<() [8/8]

template<typename _type >

bool ystdex::cpp2017::operator< | ( | nullopt_t | ,
|  | const optional< _type > & | y
| ) |  |

inline

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

引用了 platform::bool , 以及 YSLib::UI::y.

## ◆ operator<<()

template<typename _tChar , class _tTraits >

std::basic_ostream<_tChar, _tTraits>& ystdex::cpp2017::operator<< | ( | std::basic_ostream< _tChar, _tTraits > & | os,
|  | basic_string_view< _tChar, _tTraits > | str
| ) |  |

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

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

## ◆ operator<=() [1/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator<= | ( | const _tOther & | x,
|  | const optional< _type > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_tOther>() <= std::declval<_type>())>

inline

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

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

## ◆ operator<=() [2/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator<= | ( | const optional< _type > & | x,
|  | const _tOther & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() <= std::declval<_tOther>())>

inline

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

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

## ◆ operator<=() [3/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator<= | ( | const optional< _type > & | x,
|  | const optional< _tOther > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() <= std::declval<_tOther>())>

inline

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

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

## ◆ operator==() [1/5]

template<typename _tChar , class _tTraits >

bool ystdex::cpp2017::operator== | ( | basic_string_view< _tChar, _tTraits > | x,
|  | decay_t< basic_string_view< _tChar, _tTraits >> | y
| ) |  |

inline

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

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

## ◆ operator==() [2/5]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator== | ( | const _tOther & | x,
|  | const optional< _type > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_tOther>() == std::declval<_type>())>

inline

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

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

## ◆ operator==() [3/5]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator== | ( | const optional< _type > & | x,
|  | const _tOther & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() == std::declval<_tOther>())>

inline

参见
  ISO C++17 [optional.comp_with_t] 。

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

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

## ◆ operator==() [4/5]

template<typename _type >

bool ystdex::cpp2017::operator== | ( | const optional< _type > & | x,
|  | nullopt_t |
| ) |  |

inline

注解
  未显式声明的部分由 `operators` 提供实现。

参见
  ISO C++17 [optional.nullops] 。

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

引用了 x.

## ◆ operator==() [5/5]

template<typename _tChar , class _tTraits >

bool ystdex::cpp2017::operator== | ( | decay_t< basic_string_view< _tChar, _tTraits >> | x,
|  | basic_string_view< _tChar, _tTraits > | y
| ) |  |

inline

自从
  build 642

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

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

## ◆ operator>() [1/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator> | ( | const _tOther & | x,
|  | const optional< _type > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_tOther>() > std::declval<_type>())>

inline

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

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

## ◆ operator>() [2/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator> | ( | const optional< _type > & | x,
|  | const _tOther & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() > std::declval<_tOther>())>

inline

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

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

## ◆ operator>() [3/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator> | ( | const optional< _type > & | x,
|  | const optional< _tOther > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() > std::declval<_tOther>())>

inline

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

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

## ◆ operator>=() [1/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator>= | ( | const _tOther & | x,
|  | const optional< _type > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_tOther>() >= std::declval<_type>())>

inline

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

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

## ◆ operator>=() [2/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator>= | ( | const optional< _type > & | x,
|  | const _tOther & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() >= std::declval<_tOther>())>

inline

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

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

## ◆ operator>=() [3/3]

template<typename _type , typename _tOther >

auto ystdex::cpp2017::operator>= | ( | const optional< _type > & | x,
|  | const optional< _tOther > & | y
| ) |  | -> optional_relop_t<decltype( std::declval<_type>() >= std::declval<_tOther>())>

inline

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

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

## ◆ rbegin() [1/4]

template<class _tRange >

auto ystdex::cpp2017::rbegin | ( | _tRange & | c | ) | -> decltype(c.rbegin())

inline

自从
  build 624

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

引用了 CHRLib::c.

## ◆ rbegin() [2/4]

template<typename _type , size_t _vN>

reverse_iterator<_type*> ystdex::cpp2017::rbegin | ( | _type(&) | array[_vN] | ) |

inline

自从
  build 833

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

## ◆ rbegin() [3/4]

template<class _tRange >

auto ystdex::cpp2017::rbegin | ( | const _tRange & | c | ) | -> decltype(c.rbegin())

inline

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

引用了 CHRLib::c.

## ◆ rbegin() [4/4]

template<typename _tElem >

reverse_iterator<const _tElem*> ystdex::cpp2017::rbegin | ( | std::initializer_list< _tElem > | il | ) |

inline

自从
  build 833

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

## ◆ ref_opt()

template<typename _type >

_type& ystdex::cpp2017::ref_opt | ( |  | ) |

inline

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

引用了 ref_opt().

函数调用图:

## ◆ rend() [1/4]

template<class _tRange >

auto ystdex::cpp2017::rend | ( | _tRange & | c | ) | -> decltype(c.rend())

inline

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

引用了 CHRLib::c.

## ◆ rend() [2/4]

template<typename _type , size_t _vN>

reverse_iterator<_type*> ystdex::cpp2017::rend | ( | _type(&) | array[_vN] | ) |

inline

自从
  build 833

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

## ◆ rend() [3/4]

template<class _tRange >

auto ystdex::cpp2017::rend | ( | const _tRange & | c | ) | -> decltype(c.rend())

inline

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

引用了 CHRLib::c.

## ◆ rend() [4/4]

template<typename _tElem >

reverse_iterator<const _tElem*> ystdex::cpp2017::rend | ( | std::initializer_list< _tElem > | il | ) |

inline

自从
  build 833

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

## ◆ size() [1/3]

template<class _tRange >

auto ystdex::cpp2017::size | ( | const _tRange & | c | ) | -> decltype(c.size())

inline

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

引用了 CHRLib::c.

被这些函数引用 ystdex::cpp2017::basic_string< char >::compare().

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

## ◆ size() [2/3]

template<typename _type , size_t _vN>

size_t ystdex::cpp2017::size | ( | const | _type(&)[_vN] | ) |

inline

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

## ◆ size() [3/3]

template<typename _tElem >

size_t ystdex::cpp2017::size | ( | std::initializer_list< _tElem > | il | ) |

inline

参见
  CWG 1591 。

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

## ◆ swap()

template<typename _type >

void ystdex::cpp2017::swap | ( | optional< _type > & | x,
|  | optional< _type > & | y
| ) |  |

参见
  WG21 N4606 20.6.9[optional.specalg] 。

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

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

被这些函数引用 YSLib::UI::TreeList::Bind(), ystdex::pmr::resource_pool::deallocate(), YSLib::UI::TextList::InvalidateSelected2(), ystdex::any_ops::allocator_value_handler< _tByteAlloc, _tHolder >::manage(), ystdex::pmr::resource_pool::chunk_t::operator=(), ystdex::pmr::resource_pool::operator=(), YSLib::Drawing::PlotLineSeg(), ystdex::pmr::resource_pool::resource_pool(), YSLib::RestrictLessEqual(), ystdex::details::list_node_base::reverse_nodes(), YSLib::Drawing::CompactPixmap::SetSizeSwap(), ystdex::details::list_node_base::swap(), ystdex::basic_tstring_view< _tChar, _tTraits, 0 >::swap(), ystdex::cpp2017::basic_string_view< _tChar, _tTraits >::swap(), ystdex::cpp2017::basic_string< char >::swap(), ystdex::path< _tSeqCon, _tTraits >::swap(), ystdex::function_base< _tTraits, _tRet(_tParams...)>::swap(), ystdex::details::any_base::swap(), ystdex::any::swap(), YSLib::DS::ShlDS::SwapDesktops(), YSLib::Application::Switch(), ystdex::details::rb_tree::tree_rebalance_for_erase(), platform_ex::UpdateKeyStates() , 以及 YSLib::UI::TextBox::UpdateTextBoxClippedText().

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

## ◆ uninitialized_default_construct()

template<typename _tFwd >

void ystdex::cpp2017::uninitialized_default_construct | ( | _tFwd | first,
|  | _tFwd | last
| ) |  |

inline

注解
  不保证支持带有执行策略的重载。

参见
  WG21 P0040R3 。
  https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance 。
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77619 。
  http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20161010/173499.html 。

在文件 placement.hpp 第 578 行定义.

引用了 ystdex::construct_default(), YB_Impl_UninitGuard_Begin , 以及 YB_Impl_UninitGuard_End.

函数调用图:

## ◆ uninitialized_default_construct_n()

template<typename _tFwd , typename _tSize >

_tFwd ystdex::cpp2017::uninitialized_default_construct_n | ( | _tFwd | first,
|  | _tSize | n
| ) |  |

在文件 placement.hpp 第 588 行定义.

引用了 ystdex::construct_default(), YB_Impl_UninitGuard_Begin , 以及 YB_Impl_UninitGuard_End.

函数调用图:

## ◆ uninitialized_move()

template<typename _tIn , class _tFwd >

_tFwd ystdex::cpp2017::uninitialized_move | ( | _tIn | first,
|  | _tIn | last,
|  | _tFwd | result
| ) |  |

转移初始化范围。

参见
  ISO C++17 [uninitialized.move] 。

自从
  build 716

在文件 placement.hpp 第 630 行定义.

引用了 ystdex::construct(), YB_Impl_UninitGuard_Begin , 以及 YB_Impl_UninitGuard_End.

函数调用图:

## ◆ uninitialized_move_n()

template<typename _tIn , typename _tSize , class _tFwd >

std::pair<_tIn, _tFwd> ystdex::cpp2017::uninitialized_move_n | ( | _tIn | first,
|  | _tSize | n,
|  | _tFwd | result
| ) |  |

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

引用了 ystdex::construct(), YB_Impl_UninitGuard_Begin , 以及 YB_Impl_UninitGuard_End.

函数调用图:

## ◆ uninitialized_value_construct()

template<typename _tFwd >

void ystdex::cpp2017::uninitialized_value_construct | ( | _tFwd | first,
|  | _tFwd | last
| ) |  |

inline

参见
  ISO C++17 [uninitialized.construct.value] 。

在文件 placement.hpp 第 601 行定义.

引用了 ystdex::construct_range(), YB_Impl_UninitGuard_Begin , 以及 YB_Impl_UninitGuard_End.

函数调用图:

## ◆ uninitialized_value_construct_n()

template<typename _tFwd , typename _tSize >

_tFwd ystdex::cpp2017::uninitialized_value_construct_n | ( | _tFwd | first,
|  | _tSize | n
| ) |  |

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

引用了 ystdex::construct(), YB_Impl_UninitGuard_Begin , 以及 YB_Impl_UninitGuard_End.

函数调用图:

## 变量说明

## ◆ in_place_index

template<size_t _vIdx>

uniformed_tags::in_place_tag ystdex::cpp2017::in_place_index(size_t_< _vIdx >)

在文件 placement.hpp 第 262 行定义.

## ◆ in_place_type

template<typename _type >

uniformed_tags::in_place_tag ystdex::cpp2017::in_place_type(empty_base< _type >)

在文件 placement.hpp 第 255 行定义.

被这些函数引用 NPL::A1::ParseLeafWithSourceInformation().