YSTest: ystdex 命名空间参考

YSTest PreAlpha_b500_20140530 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 命名空间列表
- 命名空间成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
命名空间 | 类 | 类型定义 | 函数 | 变量
ystdex 命名空间参考

## 命名空间

| any_ops
| details
| examiners
| 操作检测命名空间。
| iterator_transformation
| 迭代转换操作。

## 类

struct | addable
struct | addable< _type, _type, _tBase, false >
struct | addable< _type, _type2, _tBase, true >
struct | additive
struct | additive< _type, _type, _tBase, false >
struct | additive< _type, _type2, _tBase, true >
struct | andable
struct | andable< _type, _type, _tBase, false >
struct | andable< _type, _type2, _tBase, true >
class | any
| 基于类型擦除的动态泛型对象。 更多...
class | any_bidirectional_iterator
| 动态泛型双向迭代器。 更多...
class | any_forward_iterator
| 动态泛型前向迭代器。 更多...
class | any_input_iterator
| 动态泛型输入迭代器。 更多...
struct | arithmetic
struct | arithmetic< _type, _type, _tBase, false >
struct | arithmetic< _type, _type2, _tBase, true >
struct | array_decay
| 数组类型退化。 更多...
struct | array_ref_decay
| 数组及数组引用类型退化。 更多...
struct | array_ref_decay< _type & >
struct | array_ref_decay< _type && >
class | bad_any_cast
| 动态泛型转换失败异常。 更多...
class | bitseg_iterator
| 位段迭代器。 更多...
struct | bitwise
struct | bitwise< _type, _type, _tBase, false >
struct | bitwise< _type, _type2, _tBase, true >
struct | boxed_value
| 包装类类型的值的对象。 更多...
class | call_once_init
| 使用 call_once 的静态初始化管理器。 更多...
struct | call_projection
| 调用投影：向原调用传递序列指定的位置的参数。 更多...
struct | call_projection< _tRet(_tParams...), variadic_sequence< _vSeq...> >
struct | call_projection< std::function< _tRet(_tParams...)>, variadic_sequence< _vSeq...> >
class | cloneable
| 可动态复制的抽象基类。 更多...
struct | combined_hash
| 使用 std::hash 和 ystdex::hash_combine_seq 实现的对特定类型的散列。 更多...
struct | combined_hash< _type >
struct | combined_hash< std::pair< _type1, _type2 > >
struct | combined_hash< std::tuple< _types...> >
struct | const_deref_op
| const 引用仿函数。 更多...
class | container_adaptor
| 容器适配器。 更多...
class | container_inserter
| 容器插入函数对象。 更多...
struct | delta_assignment
| 编译期选择加法/减法复合赋值运算仿函数。 更多...
struct | delta_assignment< false, _tScalar1, _tScalar2 >
struct | deref_comp
| 间接访问比较仿函数。 更多...
struct | deref_op
| 引用仿函数。 更多...
struct | deref_str_comp
| 间接访问字符串比较仿函数。 更多...
struct | dividable
struct | dividable< _type, _type, _tBase, false >
struct | dividable< _type, _type2, _tBase, true >
struct | empty_base
| 空基类模板。 更多...
struct | equality_comparable
struct | equality_comparable< _type, _type, _tBase, false >
struct | equality_comparable< _type, _type2, _tBase, true >
struct | equivalent
struct | equivalent< _type, _type, _tBase, false >
struct | equivalent< _type, _type2, _tBase, true >
struct | euclidean_ring_operators
struct | euclidean_ring_operators< _type, _type, _tBase, false >
struct | euclidean_ring_operators< _type, _type2, _tBase, true >
struct | expanded_caller
| 接受冗余参数的可调用对象。 更多...
struct | field_operators
struct | field_operators< _type, _type, _tBase, false >
struct | field_operators< _type, _type2, _tBase, true >
class | file_path_norm
| 文件路径范式。 更多...
class | file_path_norm< std::basic_string< _tChar, _tAlloc > >
| 文件字符串路径范式。 更多...
struct | fixed_multiplicative
| 定点数乘除法中间类型。 更多...
struct | fixed_multiplicative< std::int64_t >
struct | fixed_multiplicative< std::uint64_t >
class | fixed_point
| 通用定点数。 更多...
struct | has_common_nonempty_virtual_base
| 判断指定的两个类类型是否有非空虚基类。 更多...
struct | has_equality_operator
| 判断是否存在合式的结果可转换为 bool 类型的 == 操作符接受指定类型的表达式。 更多...
struct | has_mem_value
| 判断 _type 是否包含 value 成员。 更多...
struct | has_nonempty_virtual_base
| 判断指定类型是否有非空虚基类。 更多...
struct | has_subscription
| 判断是否存在合式的结果为非 void 类型的 [] 操作符接受指定类型的表达式。 更多...
struct | have_same_modulo
| 判断两个类型是否具有相同的模值。 更多...
struct | identity
| 恒等元函数。 更多...
class | ifile_iterator
| 基于 ISO C 标准库的流只读迭代器。 更多...
class | indirect_input_iterator
| 间接输入迭代器。 更多...
struct | indirect_tag
struct | integer_arithmetic
struct | integer_arithmetic< _type, _type, _tBase, false >
struct | integer_arithmetic< _type, _type2, _tBase, true >
struct | integer_multiplicative
struct | integer_multiplicative< _type, _type, _tBase, false >
struct | integer_multiplicative< _type, _type2, _tBase, true >
struct | integer_width
| 取指定整数类型的位宽度。 更多...
struct | is_chained_base
struct | is_chained_base< addable1< _type, _tBase > >
struct | is_chained_base< addable2< _type, _type2, _tBase > >
struct | is_chained_base< addable< _type, _type2, _tBase, _b > >
struct | is_chained_base< additive1< _type, _tBase > >
struct | is_chained_base< additive2< _type, _type2, _tBase > >
struct | is_chained_base< additive< _type, _type2, _tBase, _b > >
struct | is_chained_base< andable1< _type, _tBase > >
struct | is_chained_base< andable2< _type, _type2, _tBase > >
struct | is_chained_base< andable< _type, _type2, _tBase, _b > >
struct | is_chained_base< arithmetic1< _type, _tBase > >
struct | is_chained_base< arithmetic2< _type, _type2, _tBase > >
struct | is_chained_base< arithmetic< _type, _type2, _tBase, _b > >
struct | is_chained_base< bidirectional_iteratable< _type, _tBase > >
struct | is_chained_base< bitwise1< _type, _tBase > >
struct | is_chained_base< bitwise2< _type, _type2, _tBase > >
struct | is_chained_base< bitwise< _type, _type2, _tBase, _b > >
struct | is_chained_base< decrementable< _type, _tBase > >
struct | is_chained_base< dereferenceable< _type, _tBase > >
struct | is_chained_base< dividable1< _type, _tBase > >
struct | is_chained_base< dividable2< _type, _type2, _tBase > >
struct | is_chained_base< dividable2_left< _type, _type2, _tBase > >
struct | is_chained_base< dividable< _type, _type2, _tBase, _b > >
struct | is_chained_base< equality_comparable1< _type, _tBase > >
struct | is_chained_base< equality_comparable2< _type, _type2, _tBase > >
struct | is_chained_base< equality_comparable< _type, _type2, _tBase, _b > >
struct | is_chained_base< equivalent1< _type, _tBase > >
struct | is_chained_base< equivalent2< _type, _type2, _tBase > >
struct | is_chained_base< equivalent< _type, _type2, _tBase, _b > >
struct | is_chained_base< euclidean_ring_operators1< _type, _tBase > >
struct | is_chained_base< euclidean_ring_operators2< _type, _type2, _tBase > >
struct | is_chained_base< euclidean_ring_operators< _type, _type2, _tBase, _b > >
struct | is_chained_base< field_operators1< _type, _tBase > >
struct | is_chained_base< field_operators2< _type, _type2, _tBase > >
struct | is_chained_base< field_operators< _type, _type2, _tBase, _b > >
struct | is_chained_base< forward_iteratable< _type, _tBase > >
struct | is_chained_base< incrementable< _type, _tBase > >
struct | is_chained_base< indexable< _type, _type2, _tBase > >
struct | is_chained_base< input_iteratable< _type, _tBase > >
struct | is_chained_base< integer_arithmetic1< _type, _tBase > >
struct | is_chained_base< integer_arithmetic2< _type, _type2, _tBase > >
struct | is_chained_base< integer_arithmetic< _type, _type2, _tBase, _b > >
struct | is_chained_base< integer_multiplicative1< _type, _tBase > >
struct | is_chained_base< integer_multiplicative2< _type, _type2, _tBase > >
struct | is_chained_base< integer_multiplicative< _type, _type2, _tBase, _b > >
struct | is_chained_base< left_shiftable1< _type, _tBase > >
struct | is_chained_base< left_shiftable2< _type, _type2, _tBase > >
struct | is_chained_base< left_shiftable< _type, _type2, _tBase, _b > >
struct | is_chained_base< less_than_comparable1< _type, _tBase > >
struct | is_chained_base< less_than_comparable2< _type, _type2, _tBase > >
struct | is_chained_base< less_than_comparable< _type, _type2, _tBase, _b > >
struct | is_chained_base< modable1< _type, _tBase > >
struct | is_chained_base< modable2< _type, _type2, _tBase > >
struct | is_chained_base< modable2_left< _type, _type2, _tBase > >
struct | is_chained_base< modable< _type, _type2, _tBase, _b > >
struct | is_chained_base< multipliable1< _type, _tBase > >
struct | is_chained_base< multipliable2< _type, _type2, _tBase > >
struct | is_chained_base< multipliable< _type, _type2, _tBase, _b > >
struct | is_chained_base< multiplicative1< _type, _tBase > >
struct | is_chained_base< multiplicative2< _type, _type2, _tBase > >
struct | is_chained_base< multiplicative< _type, _type2, _tBase, _b > >
struct | is_chained_base< orable1< _type, _tBase > >
struct | is_chained_base< orable2< _type, _type2, _tBase > >
struct | is_chained_base< orable< _type, _type2, _tBase, _b > >
struct | is_chained_base< ordered_euclidean_ring_operators1< _type, _tBase > >
struct | is_chained_base< ordered_euclidean_ring_operators2< _type, _type2, _tBase > >
struct | is_chained_base< ordered_euclidean_ring_operators< _type, _type2, _tBase, _b > >
struct | is_chained_base< ordered_field_operators1< _type, _tBase > >
struct | is_chained_base< ordered_field_operators2< _type, _type2, _tBase > >
struct | is_chained_base< ordered_field_operators< _type, _type2, _tBase, _b > >
struct | is_chained_base< ordered_ring_operators1< _type, _tBase > >
struct | is_chained_base< ordered_ring_operators2< _type, _type2, _tBase > >
struct | is_chained_base< ordered_ring_operators< _type, _type2, _tBase, _b > >
struct | is_chained_base< output_iteratable< _type, _tBase > >
struct | is_chained_base< partially_ordered1< _type, _tBase > >
struct | is_chained_base< partially_ordered2< _type, _type2, _tBase > >
struct | is_chained_base< partially_ordered< _type, _type2, _tBase, _b > >
struct | is_chained_base< random_access_iteratable< _type, _type2, _tBase > >
struct | is_chained_base< right_shiftable1< _type, _tBase > >
struct | is_chained_base< right_shiftable2< _type, _type2, _tBase > >
struct | is_chained_base< right_shiftable< _type, _type2, _tBase, _b > >
struct | is_chained_base< ring_operators1< _type, _tBase > >
struct | is_chained_base< ring_operators2< _type, _type2, _tBase > >
struct | is_chained_base< ring_operators< _type, _type2, _tBase, _b > >
struct | is_chained_base< shiftable1< _type, _tBase > >
struct | is_chained_base< shiftable2< _type, _type2, _tBase > >
struct | is_chained_base< shiftable< _type, _type2, _tBase, _b > >
struct | is_chained_base< subtractable1< _type, _tBase > >
struct | is_chained_base< subtractable2< _type, _type2, _tBase > >
struct | is_chained_base< subtractable2_left< _type, _type2, _tBase > >
struct | is_chained_base< subtractable< _type, _type2, _tBase, _b > >
struct | is_chained_base< totally_ordered1< _type, _tBase > >
struct | is_chained_base< totally_ordered2< _type, _type2, _tBase > >
struct | is_chained_base< totally_ordered< _type, _type2, _tBase, _b > >
struct | is_chained_base< unit_steppable< _type, _tBase > >
struct | is_chained_base< xorable1< _type, _tBase > >
struct | is_chained_base< xorable2< _type, _type2, _tBase > >
struct | is_chained_base< xorable< _type, _type2, _tBase, _b > >
struct | is_class_pointer
| 判断指定类型是否是指向类类型对象的指针。 更多...
struct | is_contravariant
| 判断指定类型之间是否逆变。 更多...
struct | is_contravariant< _tResFrom(_tFromParams...), _tResTo(_tToParams...)>
struct | is_contravariant< std::tuple< _tFroms...>, std::tuple< _tTos...> >
struct | is_covariant
| 判断指定类型之间是否协变。 更多...
struct | is_covariant< _tFrom(_tFromParams...), _tTo(_tToParams...)>
struct | is_covariant< std::tuple< _tFroms...>, std::tuple< _tTos...> >
struct | is_decayable
| 判断是否可被退化。 更多...
struct | is_equal
| 相等关系仿函数。 更多...
struct | is_lvalue_class_reference
| 判断指定类型是否是左值类类型引用。 更多...
struct | is_normalizable
| 判断类型是否可满足归一化要求。 更多...
struct | is_normalizable< bool >
struct | is_normalizable< fixed_point< _tBase, _vInt, _vFrac > >
| is_normalizable 的 fixed_point 特化类型。 更多...
struct | is_pod_struct
| 判断指定类型是否是 POD struct 。 更多...
struct | is_pod_union
| 判断指定类型是否是 POD union 。 更多...
struct | is_returnable
| 判断指定类型是否可作为返回值类型。 更多...
struct | is_rvalue_class_reference
| 判断指定类型是否是右值类类型引用。 更多...
struct | left_shiftable
struct | left_shiftable< _type, _type, _tBase, false >
struct | left_shiftable< _type, _type2, _tBase, true >
struct | less_than_comparable
struct | less_than_comparable< _type, _type, _tBase, false >
struct | less_than_comparable< _type, _type2, _tBase, true >
struct | make_natural_sequence
| 取自然数变量标记序列。 更多...
struct | make_natural_sequence< 0 >
struct | make_parameter_tuple
| 取参数列表元组。 更多...
struct | make_parameter_tuple< _tRet(&)(_tParams...)>
struct | make_parameter_tuple< _tRet(*)(_tParams...)>
struct | make_parameter_tuple< _tRet(_tClass::*)(_tParams...) const >
struct | make_parameter_tuple< _tRet(_tClass::*)(_tParams...) const volatile >
struct | make_parameter_tuple< _tRet(_tClass::*)(_tParams...) volatile >
struct | make_parameter_tuple< _tRet(_tClass::*)(_tParams...)>
struct | make_parameter_tuple< _tRet(_tParams...)>
struct | make_parameter_tuple< std::function< _tRet(_tParams...)> >
struct | make_signed_c
| 取指定整数类型和条件表达式对应的有符号或无符号整数类型。 更多...
struct | make_signed_c< _type, false >
struct | make_successor
| 取整数序列的自然数后继。 更多...
struct | make_successor< variadic_sequence< _vSeq...> >
struct | make_width_int
| 取按指定宽度的整数类型。 更多...
struct | make_width_int< 16U >
struct | make_width_int< 32U >
struct | make_width_int< 64U >
struct | make_width_int< 8U >
class | mixin
struct | modable
struct | modable< _type, _type, _tBase, false >
struct | modable< _type, _type2, _tBase, true >
struct | modular_arithmetic
| 模算术特性：取得不超过模值的最大值。 更多...
struct | modular_arithmetic< fixed_point< _tBase, _vInt, _vFrac > >
| modular_arithmetic 的 fixed_point 特化类型。 更多...
struct | multipliable
struct | multipliable< _type, _type, _tBase, false >
struct | multipliable< _type, _type2, _tBase, true >
struct | multiplicative
struct | multiplicative< _type, _type, _tBase, false >
struct | multiplicative< _type, _type2, _tBase, true >
struct | n_tag
| 自然数标记。 更多...
struct | n_tag< 0 >
class | nifty_counter
| 使用引用计数的静态初始化管理器。 更多...
union | non_aggregate_pod
class | noncopyable
| 不可复制对象：禁止派生类调用默认原型的复制构造函数和复制赋值操作符。 更多...
class | nonmovable
struct | normalized_max
| 取算术类型的正规化后的最大值。 更多...
struct | normalized_max< _type, _vNum, _vDen, false >
struct | normalized_max< _type, _vNum, _vDen, true >
class | nullptr_t
| 空指针类。 更多...
class | offsetof_check
| 成员偏移计算静态类型检查。 更多...
struct | operators
struct | operators2
struct | operators< _type, _type >
struct | orable
struct | orable< _type, _type, _tBase, false >
struct | orable< _type, _type2, _tBase, true >
struct | ordered_euclidean_ring_operators
struct | ordered_euclidean_ring_operators< _type, _type, _tBase, false >
struct | ordered_euclidean_ring_operators< _type, _type2, _tBase, true >
struct | ordered_field_operators
struct | ordered_field_operators< _type, _type, _tBase, false >
struct | ordered_field_operators< _type, _type2, _tBase, true >
struct | ordered_ring_operators
struct | ordered_ring_operators< _type, _type, _tBase, false >
struct | ordered_ring_operators< _type, _type2, _tBase, true >
class | pair_iterator
| 成对迭代器。 更多...
struct | parameter_of
| 取指定索引的参数类型。 更多...
struct | paramlist_size
| 取参数列表大小。 更多...
struct | partially_ordered
struct | partially_ordered< _type, _type, _tBase, false >
struct | partially_ordered< _type, _type2, _tBase, true >
class | path
| 一般路径模板。 更多...
class | path_norm
| 路径范式。 更多...
union | pod_storage
struct | pointer_classify
| 指针包装为类类型迭代器。 更多...
struct | pointer_classify< _type * >
class | pointer_iterator
| 指针迭代器。 更多...
class | pseudo_iterator
| 伪迭代器。 更多...
struct | pseudo_output
| 伪输出对象。 更多...
struct | qualified_decay
| 保持修饰符的类型退化。 更多...
struct | ref_eq
| 引用相等关系仿函数。 更多...
struct | remove_rcv
| 移除可能被 cv-qualifier 修饰的引用类型。 更多...
struct | remove_rp
| 移除指针和引用类型。 更多...
struct | remove_rpcv
| 移除可能被 cv-qualifier 修饰的引用和指针类型。 更多...
struct | return_of
| 取返回类型。 更多...
struct | return_of< _tRet(&)(_tParams...)>
struct | return_of< _tRet(*)(_tParams...)>
struct | return_of< _tRet(_tClass::*)(_tParams...) const >
struct | return_of< _tRet(_tClass::*)(_tParams...) const volatile >
struct | return_of< _tRet(_tClass::*)(_tParams...) volatile >
struct | return_of< _tRet(_tClass::*)(_tParams...)>
struct | return_of< _tRet(_tParams...)>
struct | return_of< std::function< _tRet(_tParams...)> >
struct | right_shiftable
struct | right_shiftable< _type, _type, _tBase, false >
struct | right_shiftable< _type, _type2, _tBase, true >
struct | ring_operators
struct | ring_operators< _type, _type, _tBase, false >
struct | ring_operators< _type, _type2, _tBase, true >
struct | sequence_cat
| 合并序列。 更多...
struct | sequence_cat< std::tuple< _types1...>, std::tuple< _types2...> >
struct | sequence_cat< variadic_sequence< _vSeq1...>, variadic_sequence< _vSeq2...> >
class | sequence_container_adaptor
| 序列容器适配器。 更多...
struct | sequence_element
| 取序列元素。 更多...
struct | sequence_element< 0, variadic_sequence< _vSeq...> >
struct | sequence_element< _vIdx, std::tuple< _types...> >
struct | sequence_element< _vIdx, variadic_sequence< _vSeq...> >
struct | sequence_project
| 投影操作。 更多...
struct | sequence_project< std::tuple< _types...>, variadic_sequence< _vIdxSeq...> >
struct | sequence_project< variadic_sequence< _vSeq...>, variadic_sequence< _vIdxSeq...> >
struct | sequence_reverse
| 取逆序列。 更多...
struct | sequence_reverse< std::tuple< _types...> >
struct | sequence_reverse< variadic_sequence< _vSeq...> >
struct | sequence_reverse< variadic_sequence<> >
struct | sequence_split
| 拆分序列。 更多...
struct | sequence_split< std::tuple< _tHead, _tTail...> >
struct | sequence_split< variadic_sequence< _vHead, _vTail...> >
struct | shiftable
struct | shiftable< _type, _type, _tBase, false >
struct | shiftable< _type, _type2, _tBase, true >
struct | string_traits
| 字符串特征。 更多...
class | subscriptive_iterator
| 成员下标迭代器。 更多...
struct | subtractable
struct | subtractable< _type, _type, _tBase, false >
struct | subtractable< _type, _type2, _tBase, true >
struct | totally_ordered
struct | totally_ordered< _type, _type, _tBase, false >
struct | totally_ordered< _type, _type2, _tBase, true >
class | transformed_iterator
| 转换迭代器。 更多...
class | unimplemented
| 异常：未实现的操作。 更多...
class | unsupported
| 异常：不支持的操作。 更多...
struct | variadic_param
| 变长参数操作模板。 更多...
struct | variadic_param< 0U >
struct | variadic_sequence
| 变长参数标记的整数序列。 更多...
class | void_ref
| 任意对象引用类型。 更多...
struct | wrapped_traits
| 取 std::reference_wrapper 实例特征。 更多...
struct | wrapped_traits< std::reference_wrapper< _tWrapped > >
struct | xcrease_t
| 编译期选择自增/自减运算仿函数。 更多...
struct | xcrease_t< false, _tScalar >
struct | xorable
struct | xorable< _type, _type, _tBase, false >
struct | xorable< _type, _type2, _tBase, true >

## 类型定义

using | byte = unsigned char
| 字节类型。 更多...
using | octet = void
using | errno_t = int
using | raw_tag = empty_base<>
| 直接构造类型（直接构造重载用）。 更多...
using | input_monomorphic_iterator = any_input_iterator< void_ref, ptrdiff_t, void *, void_ref >
template<typename _tParam , typename = std::pair< decltype(*std::declval<_tParam&>()), decltype(++std::declval<_tParam&>())>>
using | enable_for_iterator_t = enable_if_t< is_same< decltype(++std::declval< _tParam & >()), _tParam & >::value, int >
| 选择迭代器类型的特定重载避免和其它类型冲突。 更多...
template<typename _tParam , typename = decltype(std::declval<_tParam>()[0])>
using | enable_for_string_class_t = enable_if_t< is_class< decay_t< _tParam >>::value, int >
| 选择字符串类类型的特定重载避免和其它非字符串类型冲突。 更多...
template<size_t _vIdx, typename _type >
using | tuple_element_t = typename std::tuple_element< _vIdx, _type >::type
template<typename _type >
using | remove_const_t = typename remove_const< _type >::type
| ISO C++ 1y 兼容类型操作别名。 更多...
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<class _tClass , typename _tParam , typename _type = int>
using | exclude_self_ctor_t = enable_if_t<!is_same< _tClass &, remove_rcv_t< _tParam > & >::value, _type >
| 移除选择类类型的特定重载避免构造模板和复制/转移构造函数冲突。 更多...
using | first_tag = n_tag< 0 >
| 第一分量标记。 更多...
using | second_tag = n_tag< 1 >
| 第二分量标记。 更多...
template<typename _type >
using | classify_value_t = conditional_t< std::is_class< _type >::value, _type, boxed_value< _type >>
| 包装非类类型为类类型。 更多...
template<class _tSeq >
using | sequence_split_t = typename sequence_split< _tSeq >::type
template<typename _fCallable >
using | make_parameter_tuple_t = typename make_parameter_tuple< _fCallable >::type
template<typename _fCallable >
using | return_of_t = typename return_of< _fCallable >::type
template<size_t _vIdx, typename _fCallable >
using | parameter_of_t = typename parameter_of< _vIdx, _fCallable >::type
template<typename... _types>
using | wrap_mixin_t = typename details::wrap_mixin_helper< make_natural_sequence_t< sizeof...(_types)>, std::tuple< _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<typename _type >
using | result_of_t = typename result_of< _type >::type
template<typename _type >
using | remove_rcv_t = typename remove_rcv< _type >::type
template<class _tSeq1 , class _tSeq2 >
using | sequence_cat_t = typename sequence_cat< _tSeq1, _tSeq2 >::type
template<size_t _vIdx, class _tSeq >
using | sequence_element_t = typename sequence_element< _vIdx, _tSeq >::type
template<class _tSeq , class _tIdxSeq >
using | sequence_project_t = typename sequence_project< _tSeq, _tIdxSeq >::type
template<class _tSeq >
using | sequence_reverse_t = typename sequence_reverse< _tSeq >::type
template<class _tSeq >
using | make_successor_t = typename make_successor< _tSeq >::type
template<size_t _vN>
using | make_natural_sequence_t = typename make_natural_sequence< _vN >::type

## 函数

template<typename _type , typename... _tParams>
auto | unsequenced (_type &&arg, _tParams &&...) -> decltype(std::forward< decltype(arg)>(arg))
| 无序列依赖表达式组求值实现。 更多...
template<class _type >
_type * | pod_fill (_type *first, _type *last, const _type &value)
template<class _type >
_type * | pod_copy_n (const _type *first, size_t n, _type *result)
template<class _type >
_type * | pod_copy (const _type *first, const _type *last, _type *result)
template<class _type >
_type * | pod_move_n (const _type *first, size_t n, _type *result)
template<class _type >
_type * | pod_move (const _type *first, const _type *last, _type *result)
template<typename _tFwd >
_tFwd | stable_range_unique (_tFwd first, _tFwd last)
| 去除迭代器指定的范围中的重复元素，且不改变元素之间的相对顺序。 更多...
void | swap (any &x, any &y)
| 交换对象。 更多...
void | yassert (bool, const char *, const char *, int, const char *)
| YBase 默认断言函数。 更多...
template<typename _tDst , typename _tSrc >
_tDst | union_cast (_tSrc x)
| 使用匿名联合体进行的类型转换。 更多...
template<typename _tDst , typename... _tSrc>
std::initializer_list< _tDst > | initializer_cast (_tSrc &&...x)
| 初值符列表转换。 更多...
template<typename _pDst , class _tSrc >
_pDst | polymorphic_cast (_tSrc *x)
| 多态类指针类型转换。 更多...
template<typename _tCon , typename... _tParams>
void | seq_insert (_tCon &c, _tParams &&...args)
| 顺序插入值至指定容器。 更多...
template<class _tCon , typename _tKey >
bool | exists (const _tCon &con, const _tKey &key)
| 判断指定的容器中存在指定的键。 更多...
template<typename _tRange >
void | erase_all (_tRange &c, const typename _tRange::value_type &val)
| 删除指定序列范围中和指定值的相等的元素。 更多...
template<typename _tCon , typename _tFwd , typename _tValue >
void | erase_all (_tCon &c, _tFwd first, _tFwd last, const _tValue &value)
| 删除指定容器中迭代器区间中和指定值的相等的元素。 更多...
template<typename _tRange , typename _fPred >
void | erase_all_if (_tRange &c, _fPred pred)
| 删除指定序列范围中满足条件的元素。 更多...
template<typename _tCon , typename _tFwd , typename _fPred >
void | erase_all_if (_tCon &c, _tFwd first, _tFwd last, _fPred pred)
| 删除指定容器中迭代器区间中满足条件的元素。 更多...
template<typename _tRandom >
_tRandom | sort_unique (_tRandom first, _tRandom last)
| 排序指定序列范围，保留不重复元素的区间。 更多...
template<class _tCon >
void | sort_unique (_tCon &c)
| 排序指定容器，保留不重复元素。 更多...
template<class _tMap >
std::pair< typename _tMap::iterator, bool > | search_map (_tMap &m, const typename _tMap::key_type &k)
| 按指定键值搜索指定映射。 更多...
template<typename _type , typename... _tParams>
std::array< _type, sizeof...(_tParams)> | make_array (_tParams &&...args)
| 取指定参数初始化的 std::array 对象。 更多...
template<typename _type , typename... _tParams>
std::array< _type, sizeof...(_tParams)> | forward_as_array (_tParams &&...args)
| 取指定参数转移至 std::array 对象。 更多...
bool | fexists (const char *)
| 判断指定路径的文件是否存在。 更多...
const char * | openmode_conv (std::ios_base::openmode)
std::ios_base::openmode | openmode_conv (const char *)
bool | operator!= (const ifile_iterator &x, const ifile_iterator &y)
bool | is_undereferenceable (const ifile_iterator &i)
| 判断 ifile_iterator 实例是否确定为不可解引用。 更多...
size_t | strlen_n (const char *)
| 带空指针检查的字符串长度计算。 更多...
char * | strcpy_n (char *, const char *)
| 带空指针检查的字符串复制。 更多...
char * | strcpycat (char *, const char *, const char *)
| 带空指针检查的字符串连接。 更多...
char * | strcatdup (const char *, const char *, void *(*)(size_t)=std::malloc)
| 带空指针检查的字符串连接复制。 更多...
template<typename _tChar >
bool | is_null (_tChar c)
| 使用 std::char_traits::eq 判断是否为空字符。 更多...
template<typename _tChar >
size_t | ntctslen (const _tChar *s)
| 计算简单 NTCTS 长度。 更多...
template<typename _tChar >
std::char_traits< _tChar > ::int_type | ntctscmp (const _tChar *s1, const _tChar *s2)
| 按字典序比较简单 NTCTS 。 更多...
template<typename _tChar >
std::char_traits< _tChar > ::int_type | ntctsicmp (const _tChar *s1, const _tChar *s2)
| 按字典序比较简单 NTCTS （忽略大小写）。 更多...
template<typename _tChar >
size_t | const_ntctslen (const _tChar *s)
| 计算简单 NTCTS 长度。 更多...
template<typename _tChar >
size_t | const_ntctscnt (const _tChar *s, _tChar c)
| 计算简单 NTCTS 中的指定字符数。 更多...
template<typename _tChar >
std::char_traits< _tChar > ::int_type | const_ntctscmp (const _tChar *s1, const _tChar *s2)
| 比较简单 NTCTS 。 更多...
template<typename _tChar >
std::char_traits< _tChar > ::int_type | const_ntctscmp (const _tChar *s1, const _tChar *s2, size_t n)
| 比较限制长度上限的简单 NTCTS 。 更多...
template<typename _tChar >
size_t | const_ntctschr (const _tChar *s, _tChar c)
| 在简单 NTCTS 中顺序查找指定字符。 更多...
template<typename _tChar >
size_t | const_ntctschrn (const _tChar *s, _tChar c, size_t n)
| 在简单 NTCTS 中顺序查找第指定次数出现的指定字符。 更多...
template<typename _tChar >
size_t | const_ntctsstr (const _tChar *s1, const _tChar *s2)
| 在简单 NTCTS 中顺序查找作为子串的指定 NTCTS 。 更多...
template<typename... _tParams>
size_t | sizeof_params (_tParams &&...)
| 统计函数参数列表中的参数个数。 更多...
template<size_t _vN, typename... _tParams>
const auto | varg (_tParams &&...args) -> decltype(variadic_param< _vN >::get(std::forward< decltype(args)>(args)...))
| 取指定位置的变长参数。 更多...
template<typename _fCallable , typename... _tParams>
void | unseq_apply (_fCallable &&f, _tParams &&...args)
| 无序调用。 更多...
template<typename _fHandler , typename _fCallable >
expanded_caller< _fHandler, decay_t< _fCallable > > | make_expanded (_fCallable &&f)
| 构造接受冗余参数的可调用对象。 更多...
template<typename _type >
void | hash_combine (size_t &seed, const _type &val)
| 重复计算散列。 更多...
template<bool _bIsPositive, typename _tScalar >
_tScalar & | xcrease (_tScalar &_x)
| 编译期选择自增/自减运算。 更多...
template<bool _bIsPositive, typename _tScalar1 , typename _tScalar2 >
_tScalar1 & | delta_assign (_tScalar1 &_x, _tScalar2 &_y)
| 编译期选择加法/减法复合赋值运算。 更多...
template<typename _tIterator >
bool | is_undereferenceable (const _tIterator &)
template<typename _type >
bool | is_undereferenceable (_type *p)
template<typename _tIterator1 , typename _tIterator2 >
auto | make_move_iterator_pair (_tIterator1 it1, _tIterator2 it2) -> decltype(std::make_pair(std::make_move_iterator(it1), std::make_move_iterator(it2)))
| 取转移迭代器对。 更多...
template<typename _tRange >
auto | make_move_iterator_pair (_tRange &c) -> decltype(ystdex::make_move_iterator_pair(begin(c), end(c)))
| 取指定序列范围（包含序列容器及内建数组等）的转移迭代器对。 更多...
template<typename _tIterator >
auto | operator| (_tIterator &&i, first_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::first< typename array_ref_decay< _tIterator >::type >))
| 管道匹配操作符。 更多...
template<typename _tIterator >
auto | operator| (_tIterator &&i, second_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::second< typename array_ref_decay< _tIterator >::type >))
template<typename _tIterator >
auto | operator| (_tIterator &&i, indirect_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::indirect< typename array_ref_decay< _tIterator >::type >))
template<typename _type >
_type * | get_raw (_type *const &p)
template<typename _type >
auto | get_raw (const std::unique_ptr< _type > &p) -> decltype(p.get())
template<typename _type >
_type * | get_raw (const std::shared_ptr< _type > &p)
template<typename _type >
_type * | get_raw (const std::weak_ptr< _type > &p)
template<typename _type >
bool | reset (std::unique_ptr< _type > &p)
template<typename _type >
bool | reset (std::shared_ptr< _type > &p)
template<typename _type , typename _pSrc >
std::unique_ptr< _type > | unique_raw (const _pSrc &p)
template<typename _type , typename _pSrc >
std::unique_ptr< _type > | unique_raw (_pSrc &&p)
template<typename _type >
std::unique_ptr< _type > | unique_raw (_type *p)
template<typename _type >
std::unique_ptr< _type > | unique_raw (nullptr_t)
template<typename _type , typename _pSrc >
std::shared_ptr< _type > | share_raw (const _pSrc &p)
template<typename _type , typename _pSrc >
std::shared_ptr< _type > | share_raw (_pSrc &&p)
template<typename _type >
std::shared_ptr< _type > | share_raw (_type *p)
template<typename _type >
std::shared_ptr< _type > | share_raw (nullptr_t)
template<typename _type , typename... _tParams>
std::shared_ptr< _type > | make_shared (_tParams &&...args)
| 使用 new 和指定参数构造指定类型的 std::shared_ptr 实例。 更多...
template<typename _tChar >
size_t | string_length (const _tChar *str)
| 计算字符串长度。 更多...
template<class _tString , typename = enable_if_t<is_class<_tString>::value, int>>
size_t | string_length (const _tString &str)
template<class _tString >
_tString | alph (_tString &str)
| 取字母表：有序的字符串的不重复序列。 更多...
template<class _tString >
void | concat (_tString &str, size_t n)
| 重复串接。 更多...
template<typename _fPred , typename _fInsert , typename _tIn >
void | split (_tIn b, _tIn e, _fPred is_delim, _fInsert insert)
| 以指定字符分割字符序列。 更多...
template<typename _fPred , typename _fInsert , typename _tRange >
void | split (_tRange &&c, _fPred is_delim, _fInsert insert)
| 以指定字符分割范围指定的字符串。 更多...
template<typename _fPred , typename _fInsert , typename _tIn >
_tIn | split_l (_tIn b, _tIn e, _fPred is_delim, _fInsert insert)
| 以指定字符分割字符序列。 更多...
template<typename _fPred , typename _fInsert , typename _tRange >
void | split_l (_tRange &&c, _fPred is_delim, _fInsert insert)
| 以指定字符分割范围指定的字符串。 更多...
template<typename _tChar >
std::basic_string< _tChar > | vsfmt (const _tChar *fmt, std::va_list args)
| 以 C 标准输出格式的输出 std::basic_string 实例的对象。 更多...
template<typename _tChar >
std::basic_string< _tChar > | sfmt (const _tChar *fmt,...)
| 以 C 标准输出格式的输出 std::basic_string 实例的对象。 更多...
template std::string | sfmt< char > (const char *,...)
| 显式实例化：以 C 标准输出格式的输出 std::string 对象。 更多...
template<typename _type >
decay_t< _type > | decay_copy (_type &&arg)
| 退化复制。 更多...
template<typename _type >
qualified_decay< _type >::type | decay_forward (_type &&arg)
| 退化传递。 更多...
template<typename _fCallable , typename... _tParams>
void | call_once (bool &b, _fCallable &&f, _tParams &&...args)
| 按标识调用函数，保证调用一次。 更多...
template<typename _type , typename , typename... >
_type & | parameterize_static_object ()
| 类型参数化静态对象。 更多...
template<typename _type , size_t... >
_type & | parameterize_static_object ()
| 非类型参数化静态对象。 更多...
template<typename _tKey , typename... _tKeys, typename _fInit , typename... _tParams>
auto | get_init (_fInit &&f, _tParams &&...args) -> decltype(f(std::forward< decltype(args)>(args)...))&
| 取类型标识和初始化调用指定的对象。 更多...
template<size_t... _vKeys, typename _fInit , typename... _tParams>
auto | get_init (_fInit &&f, _tParams &&...args) -> decltype(f(std::forward< decltype(args)>(args)...))&
| 取非类型标识和初始化调用指定的对象。 更多...
char * | strcatdup (const char *s1, const char *s2, void *(*fun)(size_t))
template<typename _type >
bool | operator== (nullptr_t lhs, const _type &rhs)
template<typename _type >
bool | operator== (const _type &lhs, nullptr_t rhs)
template<typename _type >
bool | operator!= (nullptr_t lhs, const _type &rhs)
template<typename _type >
bool | operator!= (const _type &lhs, nullptr_t rhs)
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool | operator== (const any_input_iterator< _type, _tDifference, _tPointer, _tReference > &x, const any_input_iterator< _type, _tDifference, _tPointer, _tReference > &y)
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool | operator!= (const any_input_iterator< _type, _tDifference, _tPointer, _tReference > &x, const any_input_iterator< _type, _tDifference, _tPointer, _tReference > &y)
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool | is_undereferenceable (const any_input_iterator< _type, _tDifference, _tPointer, _tReference > &i)
void | ytrace (std::FILE *, std::uint8_t, std::uint8_t, const char *, int, const char *,...)
| YCLib 调试跟踪函数。 更多...
template<typename _pDst , class _tSrc >
_pDst | polymorphic_downcast (_tSrc *x)
| 多态类指针向派生类指针转换。 更多...
template<typename _rDst , class _tSrc >
_rDst | polymorphic_downcast (_tSrc &x)
template<typename _rDst , class _tSrc >
enable_if_t<!is_reference < _tSrc >::value, _rDst > | polymorphic_downcast (_tSrc &&x)
template<typename _pDst , class _tSrc >
_pDst | polymorphic_crosscast (_tSrc *x)
| 多态类指针交叉转换。 更多...
template<typename _rDst , class _tSrc >
_rDst | polymorphic_crosscast (_tSrc &x)
template<typename _rDst , class _tSrc >
enable_if_t<!is_reference < _tSrc >::value, _rDst > | polymorphic_crosscast (_tSrc &&x)
template<typename _tDst , typename _tSrc >
_tDst | general_cast (_tSrc *x)
| 一般类型转换。 更多...
template<typename _tDst , typename _tSrc >
_tDst | general_cast (_tSrc &x)
template<typename _tDst , typename _tSrc >
const _tDst | general_cast (const _tSrc &x)
template<class _tSeqCon >
bool | operator!= (const container_adaptor< _tSeqCon > &x, const container_adaptor< _tSeqCon > &y)
| 满足容器要求。 更多...
template<class _tSeqCon >
void | swap (container_adaptor< _tSeqCon > &x, container_adaptor< _tSeqCon > &y)
template<class _tSeqCon >
bool | operator!= (const sequence_container_adaptor< _tSeqCon > &x, const sequence_container_adaptor< _tSeqCon > &y)
| 满足容器要求。 更多...
template<class _tSeqCon >
void | swap (sequence_container_adaptor< _tSeqCon > &x, sequence_container_adaptor< _tSeqCon > &y)
template<class _tCon , typename... _tParams>
void | assign (_tCon &c, _tParams &&...args)
| 插入参数指定的元素到容器。 更多...
template<class _tCon , typename _type , size_t _vN>
void | assign (_tCon &c, const _type(&arr)[_vN])
template<typename _type , size_t _vN, typename _tSrc >
std::array< _type, _vN > | to_array (const _tSrc &src)
| 取指定参数转换为 std::array 对象。 更多...
template<typename _type , size_t _vN>
std::array< _type, _vN > | to_array (const std::array< _type, _vN > &src)
template<typename _type , size_t _vN, typename _tSrcElement >
std::array< _type, _vN > | to_array (const _tSrcElement(&src)[_vN])
template<typename _type , size_t _vN, typename _tSrcElement >
std::array< _type, _vN > | to_array (_tSrcElement(&&src)[_vN])
template<typename _fCallable >
void | seq_apply (_fCallable &&)
| 顺序递归调用。 更多...
template<typename _fCallable , typename _type , typename... _tParams>
void | seq_apply (_fCallable &&f, _type &&arg, _tParams &&...args)
template<typename _type >
_type & | unref (_type &&x)
| 解除引用包装。 更多...
template<typename _type >
_type & | unref (const std::reference_wrapper< _type > &x)
template<typename _type >
size_t | hash_combine_seq (size_t seed, const _type &val)
| 重复计算序列散列。 更多...
template<typename _type , typename... _tParams>
size_t | hash_combine_seq (size_t seed, const _type &x, const _tParams &...args)
template<typename _tIn >
size_t | hash_range (_tIn first, _tIn last)
| 重复对范围计算散列。 更多...
template<typename _tIn >
size_t | hash_range (size_t &seed, _tIn first, _tIn last)
template<typename _tIn , typename _fPred >
_tIn | next_if (_tIn i, _fPred f, typename std::iterator_traits< _tIn >::difference_type n=1)
| 迭代器指向的值满足条件时取邻接迭代器，否则取原值。 更多...
template<typename _tIn , typename _type >
_tIn | next_if_eq (_tIn i, const _type &val, typename std::iterator_traits< _tIn >::difference_type n=1)
template<typename _tBi , typename _fPred >
_tBi | prev_if (_tBi i, _fPred f, typename std::iterator_traits< _tBi >::difference_type n=1)
| 迭代器指向的值满足条件时取反向邻接迭代器，否则取原值。 更多...
template<typename _tBi , typename _type >
_tBi | prev_if_eq (_tBi i, const _type &val, typename std::iterator_traits< _tBi >::difference_type n=1)
template<typename _type , typename... _tParams>
enable_if_t<!is_array< _type > ::value, std::unique_ptr < _type > > | make_unique (_tParams &&...args)
| 使用 new 和指定参数构造指定类型的 std::unique_ptr 实例。 更多...
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, void > | make_unique (_tParams &&...)=delete
template<class _tSeqCon , class _tNorm >
bool | operator== (const path< _tSeqCon, _tNorm > &x, const path< _tSeqCon, _tNorm > &y)
| 路径比较操作。 更多...
template<class _tSeqCon , class _tNorm >
bool | operator!= (const path< _tSeqCon, _tNorm > &x, const path< _tSeqCon, _tNorm > &y)
template<class _tSeqCon , class _tNorm >
bool | operator< (const path< _tSeqCon, _tNorm > &x, const path< _tSeqCon, _tNorm > &y)
template<class _tSeqCon , class _tNorm >
bool | operator<= (const path< _tSeqCon, _tNorm > &x, const path< _tSeqCon, _tNorm > &y)
template<class _tSeqCon , class _tNorm >
bool | operator> (const path< _tSeqCon, _tNorm > &x, const path< _tSeqCon, _tNorm > &y)
template<class _tSeqCon , class _tNorm >
bool | operator>= (const path< _tSeqCon, _tNorm > &x, const path< _tSeqCon, _tNorm > &y)
template<typename _tRange1 , typename _tRange2 , typename _fPred >
bool | starts_width (const _tRange1 &input, const _tRange2 &test, _fPred comp)
| 判断第一个参数指定的串是否以第二个参数起始。 更多...
template<typename _tRange1 , typename _tRange2 >
bool | starts_width (const _tRange1 &input, const _tRange2 &test)
template<typename _tRange1 , typename _tRange2 , typename _fPred >
bool | ends_with (const _tRange1 &input, const _tRange2 &test, _fPred comp)
| 判断第一个参数指定的串是否以第二个参数结束。 更多...
template<typename _tRange1 , typename _tRange2 >
bool | ends_with (const _tRange1 &input, const _tRange2 &test)
template<class _tString >
_tString && | ltrim (_tString &&str, typename string_traits< _tString >::const_pointer t=&to_array< typename string_traits< _tString >::value_type >("\n\r\t\v ")[0])
| 删除字符串中指定的连续前缀字符。 更多...
template<class _tString >
_tString && | rtrim (_tString &&str, typename string_traits< _tString >::const_pointer t=&to_array< typename string_traits< _tString >::value_type >("\n\r\t\v ")[0])
| 删除字符串中指定的连续后缀字符。 更多...
template<class _tString >
_tString && | trim (_tString &&str, typename string_traits< _tString >::const_pointer t=&to_array< typename string_traits< _tString >::value_type >("\n\r\t\v ")[0])
| 删除字符串中指定的连续前缀与后缀字符。 更多...
template<typename _tString >
_tString | get_mid (const _tString &str, typename _tString::size_type l=1)
| 取删除前缀和后缀的子字符串。 更多...
template<typename _tString >
_tString | get_mid (const _tString &str, typename _tString::size_type l, typename _tString::size_type r)
std::string | to_string (unsigned char val)
| 转换为字符串。 更多...
std::string | to_string (unsigned short val)
template<typename _type >
std::string | to_string (_type val, enable_if_t< is_enum< _type >::value, int >=0)
template<typename _type , size_t _vN>
size_t | arrlen (_type(&)[_vN])
| 计算指定数组类型对象的长度。 更多...
template<typename _type , size_t _vN>
size_t | arrlen (_type(&&)[_vN])

## 变量

const class ystdex::nullptr_t | nullptr = {}
const first_tag | get_first {}
| 操纵子。 更多...
const first_tag | get_key {}
const second_tag | get_second {}
const second_tag | get_value {}
const struct ystdex::indirect_tag | get_indirect

## 类型定义说明

using ystdex::byte = typedef unsigned char

字节类型。

注解
  ISO C++ 对访问存储的 glvalue 的类型有严格限制，当没有对象生存期保证时， 仅允许（可能 cv 修饰的） char 和 unsigned char 及其指针/引用或 void* ， 而不引起未定义行为(undefined behavior) 。 由于 char 的算术操作行为是否按有符号处理未指定，使用 unsigned char 表示字节以便获得确定的行为，同时对字符处理（如 std::fgetc ）保持较好的兼容性。

自从
  build 209

在文件 ydef.h 第 555 行定义.

using ystdex::errno_t = typedef int

在文件 ydef.h 第 568 行定义.

using ystdex::input_monomorphic_iterator = typedef any_input_iterator<void_ref, ptrdiff_t, void*, void_ref>

在文件 any_iterator.hpp 第 368 行定义.

template<size_t _vN>

using ystdex::make_natural_sequence_t = typedef typename make_natural_sequence<_vN>::type

自从
  build 447

在文件 variadic.hpp 第 240 行定义.

template<typename _fCallable >

using ystdex::make_parameter_tuple_t = typedef typename make_parameter_tuple<_fCallable>::type

自从
  build 447

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

template<class _tSeq >

using ystdex::make_successor_t = typedef typename make_successor<_tSeq>::type

自从
  build 447

在文件 variadic.hpp 第 219 行定义.

using ystdex::octet = typedef void

在文件 ydef.h 第 565 行定义.

template<size_t _vIdx, typename _fCallable >

using ystdex::parameter_of_t = typedef typename parameter_of<_vIdx, _fCallable>::type

自从
  build 447

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

using ystdex::raw_tag = typedef empty_base<>

直接构造类型（直接构造重载用）。

自从
  build 439

在文件 ydef.h 第 665 行定义.

template<typename _type >

using ystdex::remove_rcv_t = typedef typename remove_rcv<_type>::type

自从
  build 448

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

template<typename _fCallable >

using ystdex::return_of_t = typedef typename return_of<_fCallable>::type

自从
  build 447

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

template<class _tSeq1 , class _tSeq2 >

using ystdex::sequence_cat_t = typedef typename sequence_cat<_tSeq1, _tSeq2>::type

在文件 variadic.hpp 第 104 行定义.

template<size_t _vIdx, class _tSeq >

using ystdex::sequence_element_t = typedef typename sequence_element<_vIdx, _tSeq>::type

在文件 variadic.hpp 第 124 行定义.

template<class _tSeq , class _tIdxSeq >

using ystdex::sequence_project_t = typedef typename sequence_project<_tSeq, _tIdxSeq>::type

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

template<class _tSeq >

using ystdex::sequence_reverse_t = typedef typename sequence_reverse<_tSeq>::type

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

## 函数说明

template<class _tString >

_tString ystdex::alph | ( | _tString & | str | ) |

取字母表：有序的字符串的不重复序列。

自从
  build 414

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

参考 sort_unique().

函数调用图:
template<typename _fCallable , typename... _tParams>

void ystdex::call_once | ( | bool & | b,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

按标识调用函数，保证调用一次。

注解
  类似 std::call_once ，但不保证线程安全性。
  ISO C++11（至 N3691 ） 30.4 synopsis 处的声明存在错误。

参见
  https://github.com/cplusplus/draft/issues/151 。

自从
  build 327

当标识为 true 时候无作用，否则调用函数。

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

参考 YSLib::UI::args, YSLib::UI::f , 以及 yforward.

参考自 ystdex::call_once_init< _type, _tOnceFlag >::call_once_init() , 以及 ystdex::call_once_init< _type, _tOnceFlag >::~call_once_init().

这是这个函数的调用关系图:
template<class _tString >

void ystdex::concat | ( | _tString & | str,
|  | size_t | n
| ) |  |

重复串接。

参数

  str | 被串接的字符串的引用。
  n | 串接结果包含原字符串的重复次数。

前置条件
  断言： `1 < n` 。

自从
  build 414

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

参考 yconstraint.

template<typename _tRange1 , typename _tRange2 , typename _fPred >

bool ystdex::ends_with | ( | const _tRange1 & | input,
|  | const _tRange2 & | test,
|  | _fPred | comp
| ) |  |

inline

判断第一个参数指定的串是否以第二个参数结束。

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

参考 ystdex::details::ends_with_iter_dispatch().

参考自 ends_with().

函数调用图:

这是这个函数的调用关系图:
template<typename _tRange1 , typename _tRange2 >

bool ystdex::ends_with | ( | const _tRange1 & | input,
|  | const _tRange2 & | test
| ) |  |

inline

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

参考 ends_with().

函数调用图:
template<class _tCon , typename _tKey >

bool ystdex::exists | ( | const _tCon & | con,
|  | const _tKey & | key
| ) |  |

inline

判断指定的容器中存在指定的键。

注解
  当容器对象右值可使用返回以整数初始化的类型的成员 `count()` 时使用成 员 count() 实现；否则使用 ADL `begin` 和 `end` 指定的容器迭代 器，使用成员 find 实现。

自从
  build 488

在文件 container.hpp 第 373 行定义.

参考 ystdex::details::exists().

参考自 YSLib::UI::Menu::DrawItem().

函数调用图:

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

bool ystdex::fexists | ( | const char * | path | ) |

判断指定路径的文件是否存在。

注解
  使用 std::fopen 实现。

前置条件
  断言：参数非空。

自从
  build 326

在文件 cstdio.cpp 第 36 行定义.

参考 CHRLib::fp , 以及 yconstraint.

参考自 platform::ufexists().

这是这个函数的调用关系图:
template<typename _type , typename... _tParams>

std::array<_type, sizeof...(_tParams)> ystdex::forward_as_array | ( | _tParams &&... | args | ) |

inline

取指定参数转移至 std::array 对象。

自从
  build 495

在文件 container.hpp 第 501 行定义.

参考 YSLib::UI::args , 以及 yforward.

template<typename _tKey , typename... _tKeys, typename _fInit , typename... _tParams>

auto ystdex::get_init | ( | _fInit && | f,
|  | _tParams &&... | args
| ) |  | -> decltype(f(std::forward<decltype( args )>( args )...))&

inline

取类型标识和初始化调用指定的对象。

模板参数

  _tKey | 起始类型参数化标识。
  _tKeys | 非起始类型参数化标识。
  _fInit | 初始化调用类型。
  _tParams | 初始化参数类型。

返回
  初始化后的对象的左值引用。

自从
  build 327

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

参考 YSLib::UI::args, YSLib::UI::f , 以及 yforward.

template<size_t... _vKeys, typename _fInit , typename... _tParams>

auto ystdex::get_init | ( | _fInit && | f,
|  | _tParams &&... | args
| ) |  | -> decltype(f(std::forward<decltype( args )>( args )...))&

inline

取非类型标识和初始化调用指定的对象。

模板参数

  _vKeys | 非类型参数化标识。
  _fInit | 初始化调用类型。
  _tParams | 初始化参数类型。

返回
  初始化后的对象的左值引用。

自从
  build 327

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

参考 YSLib::UI::args, YSLib::UI::f , 以及 yforward.

template<typename _tDst , typename... _tSrc>

std::initializer_list<_tDst> ystdex::initializer_cast | ( | _tSrc &&... | x | ) |

inline

初值符列表转换。

模板参数

  _tSrc | 源类型。
  _tDst | 目标类型。

自从
  build 304

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

参考 yforward.

template<typename _tChar >

bool ystdex::is_null | ( | _tChar | c | ) |

inline

使用 std::char_traits::eq 判断是否为空字符。

自从
  build 329

在文件 cstring.h 第 86 行定义.

参考自 const_ntctschr(), const_ntctschrn(), const_ntctscmp(), const_ntctscnt(), const_ntctslen(), const_ntctsstr(), CHRLib::MBCSToUCS2(), ntctscmp(), ntctsicmp(), ntctslen(), CHRLib::UCS2ToMBCS() , 以及 CHRLib::UCS4ToUCS2().

这是这个函数的调用关系图:
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >

bool ystdex::is_undereferenceable | ( | const any_input_iterator< _type, _tDifference, _tPointer, _tReference > & | i | ) |

inline

在文件 any_iterator.hpp 第 364 行定义.

参考自 YSLib::Drawing::DrawPolygon(), YSLib::GMRUCache< YSLib::Drawing::Typeface::BitmapKey, YSLib::Drawing::Typeface::SmallBitmapData, YSLib::Drawing::Typeface::BitmapKeyHash >::emplace(), YSLib::Drawing::FetchStringOffsets(), YSLib::Drawing::FetchStringWidth(), CHRLib::FillByte(), ystdex::any_ops::iterator_handler< _type >::manage(), next_if(), next_if_eq(), ystdex::indirect_input_iterator< _tIterator >::operator bool(), YSLib::Drawing::SequenceTransformer::operator()(), YSLib::Drawing::VerticalLineTransfomer::operator()(), ystdex::indirect_input_iterator< _tIterator >::operator*(), ystdex::indirect_input_iterator< _tIterator >::operator++() , 以及 NPL::Session::Session().

这是这个函数的调用关系图:
template<typename _type , typename... _tParams>

std::array<_type, sizeof...(_tParams)> ystdex::make_array | ( | _tParams &&... | args | ) |

inline

取指定参数初始化的 std::array 对象。

自从
  build 337

在文件 container.hpp 第 489 行定义.

参考 YSLib::UI::args , 以及 decay_copy().

函数调用图:

const char * ystdex::openmode_conv | ( | std::ios_base::openmode | mode | ) |

在文件 cstdio.cpp 第 49 行定义.

参考自 YSLib::File::Open().

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

std::ios_base::openmode ystdex::openmode_conv | ( | const char * | str | ) |

在文件 cstdio.cpp 第 76 行定义.

参考 platform_ex::Windows::l , 以及 yunseq.

template<class _tSeqCon >

bool ystdex::operator!= | ( | const container_adaptor< _tSeqCon > & | x,
|  | const container_adaptor< _tSeqCon > & | y
| ) |  |

inline

满足容器要求。

自从
  build 408

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

bool ystdex::operator!= | ( | const ifile_iterator & | x,
|  | const ifile_iterator & | y
| ) |  |

inline

在文件 cstdio.h 第 175 行定义.

template<class _tSeqCon >

bool ystdex::operator!= | ( | const sequence_container_adaptor< _tSeqCon > & | x,
|  | const sequence_container_adaptor< _tSeqCon > & | y
| ) |  |

inline

满足容器要求。

自从
  build 408

在文件 container.hpp 第 265 行定义.

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >

bool ystdex::operator!= | ( | const any_input_iterator< _type, _tDifference, _tPointer, _tReference > & | x,
|  | const any_input_iterator< _type, _tDifference, _tPointer, _tReference > & | y
| ) |  |

inline

在文件 any_iterator.hpp 第 361 行定义.

template<class _tSeqCon , class _tNorm >

bool ystdex::operator!= | ( | const path< _tSeqCon, _tNorm > & | x,
|  | const path< _tSeqCon, _tNorm > & | y
| ) |  |

在文件 path.hpp 第 372 行定义.

template<typename _type >

bool ystdex::operator!= | ( | nullptr_t | lhs,
|  | const _type & | rhs
| ) |  |

inline

在文件 ydef.h 第 638 行定义.

参考 ystdex::nullptr_t::equals().

函数调用图:
template<typename _type >

bool ystdex::operator!= | ( | const _type & | lhs,
|  | nullptr_t | rhs
| ) |  |

inline

在文件 ydef.h 第 644 行定义.

参考 ystdex::nullptr_t::equals().

函数调用图:
template<class _tSeqCon , class _tNorm >

bool ystdex::operator< | ( | const path< _tSeqCon, _tNorm > & | x,
|  | const path< _tSeqCon, _tNorm > & | y
| ) |  |

在文件 path.hpp 第 379 行定义.

参考 ystdex::path< _tSeqCon, _tNorm >::before().

函数调用图:
template<class _tSeqCon , class _tNorm >

bool ystdex::operator<= | ( | const path< _tSeqCon, _tNorm > & | x,
|  | const path< _tSeqCon, _tNorm > & | y
| ) |  |

在文件 path.hpp 第 386 行定义.

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >

bool ystdex::operator== | ( | const any_input_iterator< _type, _tDifference, _tPointer, _tReference > & | x,
|  | const any_input_iterator< _type, _tDifference, _tPointer, _tReference > & | y
| ) |  |

inline

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

template<class _tSeqCon , class _tNorm >

bool ystdex::operator== | ( | const path< _tSeqCon, _tNorm > & | x,
|  | const path< _tSeqCon, _tNorm > & | y
| ) |  |

inline

路径比较操作。

在文件 path.hpp 第 365 行定义.

参考 ystdex::path< _tSeqCon, _tNorm >::equals().

函数调用图:
template<typename _type >

bool ystdex::operator== | ( | nullptr_t | lhs,
|  | const _type & | rhs
| ) |  |

inline

自从
  build 316

在文件 ydef.h 第 625 行定义.

参考 ystdex::nullptr_t::equals().

函数调用图:
template<typename _type >

bool ystdex::operator== | ( | const _type & | lhs,
|  | nullptr_t | rhs
| ) |  |

inline

在文件 ydef.h 第 631 行定义.

参考 ystdex::nullptr_t::equals().

函数调用图:
template<class _tSeqCon , class _tNorm >

bool ystdex::operator> | ( | const path< _tSeqCon, _tNorm > & | x,
|  | const path< _tSeqCon, _tNorm > & | y
| ) |  |

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

template<class _tSeqCon , class _tNorm >

bool ystdex::operator>= | ( | const path< _tSeqCon, _tNorm > & | x,
|  | const path< _tSeqCon, _tNorm > & | y
| ) |  |

在文件 path.hpp 第 400 行定义.

template<typename _tIterator >

auto ystdex::operator| | ( | _tIterator && | i,
|  | first_tag |
| ) |  | -> decltype(make_transform(std::forward<decltype( i )>( i ), iterator_transformation::first< typename array_ref_decay<_tIterator>::type>))

inline

管道匹配操作符。

自从
  build 288

在文件 iterator.hpp 第 797 行定义.

参考 ystdex::iterator_transformation::first() , 以及 yforward.

函数调用图:
template<typename _tIterator >

auto ystdex::operator| | ( | _tIterator && | i,
|  | second_tag |
| ) |  | -> decltype(make_transform(std::forward<decltype( i )>( i ), iterator_transformation::second< typename array_ref_decay<_tIterator>::type>))

inline

在文件 iterator.hpp 第 806 行定义.

参考 ystdex::iterator_transformation::second() , 以及 yforward.

函数调用图:
template<typename _tIterator >

auto ystdex::operator| | ( | _tIterator && | i,
|  | indirect_tag |
| ) |  | -> decltype(make_transform(std::forward<decltype( i )>( i ), iterator_transformation::indirect< typename array_ref_decay<_tIterator>::type>))

inline

自从
  build 358

在文件 iterator.hpp 第 816 行定义.

参考 ystdex::iterator_transformation::indirect() , 以及 yforward.

函数调用图:
template<typename _type , typename , typename... >

_type& ystdex::parameterize_static_object | ( |  | ) |

inline

类型参数化静态对象。

警告
  不可重入。
  非线程安全。

自从
  build 303

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

template<typename _type , size_t... >

_type& ystdex::parameterize_static_object | ( |  | ) |

inline

非类型参数化静态对象。

警告
  不可重入。
  非线程安全。

自从
  build 301

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

template<typename _fCallable >

void ystdex::seq_apply | ( | _fCallable && |  | ) |

inline

顺序递归调用。

参见
  关于调用参数类型： ISO C++11 30.3.1.2[thread.thread.constr] 。

自从
  build 327

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

参考自 seq_apply() , 以及 seq_insert().

这是这个函数的调用关系图:
template<typename _fCallable , typename _type , typename... _tParams>

void ystdex::seq_apply | ( | _fCallable && | f,
|  | _type && | arg,
|  | _tParams &&... | args
| ) |  |

inline

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

参考 YSLib::UI::args, YSLib::UI::f, seq_apply() , 以及 yforward.

函数调用图:
template<typename _tCon , typename... _tParams>

void ystdex::seq_insert | ( | _tCon & | c,
|  | _tParams &&... | args
| ) |  |

inline

顺序插入值至指定容器。

自从
  build 338

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

参考 YSLib::UI::args, seq_apply() , 以及 yforward.

参考自 YSLib::CollectNodes().

函数调用图:

这是这个函数的调用关系图:
template<typename _tChar >

std::basic_string<_tChar> ystdex::sfmt | ( | const _tChar * | fmt,
|  |  | ...
| ) |  |

以 C 标准输出格式的输出 std::basic_string 实例的对象。

注解
  Clang++ 对于模板声明直接提示格式字符串类型错误。

自从
  build 322

待办事项:
  提供 char 以外的模板参数的正确实现。

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

参考 YSLib::UI::args , 以及 vsfmt().

参考自 YSLib::Drawing::FontCache::FontCache(), NPL::LoadNPLA1() , 以及 platform::LogWithSource().

函数调用图:

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

template std::string ystdex::sfmt< char > | ( | const char * | ,
|  |  | ...
| ) |  |

显式实例化：以 C 标准输出格式的输出 std::string 对象。

参见
  sfmt

自从
  build 350

template<typename... _tParams>

size_t ystdex::sizeof_params | ( | _tParams && | ... | ) |

inline

统计函数参数列表中的参数个数。

自从
  build 360 。

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

template<typename _tRandom >

_tRandom ystdex::sort_unique | ( | _tRandom | first,
|  | _tRandom | last
| ) |  |

inline

排序指定序列范围，保留不重复元素的区间。

返回
  不重复元素的区间末尾。

自从
  build 414

在文件 container.hpp 第 445 行定义.

参考自 alph() , 以及 sort_unique().

这是这个函数的调用关系图:
template<class _tCon >

void ystdex::sort_unique | ( | _tCon & | c | ) |

排序指定容器，保留不重复元素。

前置条件
  容器的迭代器满足随机迭代器要求。

自从
  build 414

在文件 container.hpp 第 458 行定义.

参考 sort_unique().

函数调用图:
template<typename _tFwd >

_tFwd ystdex::stable_range_unique | ( | _tFwd | first,
|  | _tFwd | last
| ) |  |

去除迭代器指定的范围中的重复元素，且不改变元素之间的相对顺序。

参数

  first | 输入范围起始迭代器。
  last | 输入范围终止迭代器。

返回
  输出范围终止迭代器。

注解
  输入和输出范围的起始迭代器相同。
  输出范围元素之间的相对顺序和输入的范围保持一致。
  时间复杂度： O(n^2) ，其中 n 满足 `std::advance(first, n) == last` 。
  使用 ADL 交换。

自从
  build 265

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

参考 swap().

函数调用图:

char* ystdex::strcatdup | ( | const char * | s1,
|  | const char * | s2,
|  | void *(*)(size_t) | fun
| ) |  |

在文件 cstring.cpp 第 59 行定义.

参考 strcpycat().

函数调用图:

char* ystdex::strcatdup | ( | const char * | ,
|  | const char * | ,
|  | void * | *)(size_t = `std::malloc`
| ) |  |

带空指针检查的字符串连接复制。

返回
  目标参数。

对传入参数进行非空检查后串接指定的两个字符串， 结果复制至用指定分配函数（默认为 std::malloc）新分配的空间。

char * ystdex::strcpy_n | ( | char * | d,
|  | const char * | s
| ) |  |

带空指针检查的字符串复制。

返回
  成功时为复制的字符串，失败时为空指针。

当目标字符串和源字符串都非空时用 std::strcpy 复制字符串。

在文件 cstring.cpp 第 41 行定义.

char * ystdex::strcpycat | ( | char * | d,
|  | const char * | s1,
|  | const char * | s2
| ) |  |

带空指针检查的字符串连接。

返回
  返回目标参数。

对传入参数进行非空检查后串接指定的两个字符串，结果复制至指定位置。

在文件 cstring.cpp 第 47 行定义.

参考 YB_UNLIKELY.

参考自 strcatdup().

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

size_t ystdex::strlen_n | ( | const char * | s | ) |

带空指针检查的字符串长度计算。

返回
  当字符指针非空时为 std::strlen 计算的串长，否则为 0 。

在文件 cstring.cpp 第 35 行定义.

template<class _tSeqCon >

void ystdex::swap | ( | container_adaptor< _tSeqCon > & | x,
|  | container_adaptor< _tSeqCon > & | y
| ) |  |

在文件 container.hpp 第 163 行定义.

template<class _tSeqCon >

void ystdex::swap | ( | sequence_container_adaptor< _tSeqCon > & | x,
|  | sequence_container_adaptor< _tSeqCon > & | y
| ) |  |

在文件 container.hpp 第 273 行定义.

参考自 ystdex::container_adaptor< _tSeqCon >::swap().

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

void ystdex::swap | ( | any & | x,
|  | any & | y
| ) |  |

inline

交换对象。

自从
  build 398

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

参考自 YSLib::Drawing::DefClone(), YSLib::UI::TextBox::DrawClippedText(), ystdex::indirect_input_iterator< _tIterator >::indirect_input_iterator(), YSLib::UI::InvalidateSelected2(), YSLib::Drawing::operator=(), YSLib::Drawing::PlotLineSeg(), YSLib::UI::TextBox::ReplaceSelection(), YSLib::RestrictLessEqual(), YSLib::Drawing::CompactPixmap::SetSizeSwap(), stable_range_unique(), platform_ex::Android::ScreenBuffer::swap(), platform_ex::Windows::ScreenBuffer::swap(), platform_ex::COMPtr< _iCOM >::swap(), ystdex::path< _tSeqCon, _tNorm >::swap(), ystdex::any::swap(), YSLib::DS::ShlDS::SwapDesktops(), YSLib::Application::Switch() , 以及 platform_ex::UpdateKeyStates().

这是这个函数的调用关系图:
template<typename _type , size_t _vN, typename _tSrc >

std::array<_type, _vN> ystdex::to_array | ( | const _tSrc & | src | ) |

inline

取指定参数转换为 std::array 对象。

自从
  build 337

在文件 container.hpp 第 514 行定义.

template<typename _type , size_t _vN>

std::array<_type, _vN> ystdex::to_array | ( | const std::array< _type, _vN > & | src | ) |

inline

在文件 container.hpp 第 520 行定义.

template<typename _type , size_t _vN, typename _tSrcElement >

std::array<_type, _vN> ystdex::to_array | ( | const _tSrcElement(&) | src[_vN] | ) |

inline

在文件 container.hpp 第 526 行定义.

template<typename _type , size_t _vN, typename _tSrcElement >

std::array<_type, _vN> ystdex::to_array | ( | _tSrcElement(&&) | src[_vN] | ) |

inline

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

std::string ystdex::to_string | ( | unsigned char | val | ) |

inline

转换为字符串。

注解
  可与 `std::to_string` 共用以避免某些类型转换警告， 如 G++ 的 [-Wsign-promo] 。

自从
  build 308

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

参考 to_string().

参考自 YReader::FetchEncodingString(), YSLib::IsPrefixedIndex(), main(), YSLib::UI::ParseRect(), NPL::SContext::Reduce(), YReader::ShlReader::SaveBookmarks(), YSLib::UI::ColorBox::SetColor(), YSLib::StringifyToNode(), YSLib::Drawing::to_string(), to_string(), NPL::TransformNPLA1(), YReader::TextInfoBox::UpdateData(), YReader::SettingPanel::UpdateInfo() , 以及 YSLib::UI::BorderResizer::Wrap().

函数调用图:

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

std::string ystdex::to_string | ( | unsigned short | val | ) |

inline

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

参考 to_string().

函数调用图:
template<typename _type >

std::string ystdex::to_string | ( | _type | val,
|  | enable_if_t< is_enum< _type >::value, int > | = `0`
| ) |  |

inline

自从
  build 439

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

参考 to_string().

参考自 to_string().

函数调用图:

这是这个函数的调用关系图:
template<typename _type >

_type& ystdex::unref | ( | _type && | x | ) |

解除引用包装。

注解
  默认只对于 std::reference_wrapper 的实例类型的对象重载。
  使用 ADL 。

自从
  build 348

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

template<typename _type >

_type& ystdex::unref | ( | const std::reference_wrapper< _type > & | x | ) |

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

template<typename _fCallable , typename... _tParams>

void ystdex::unseq_apply | ( | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

无序调用。

参见
  关于调用参数类型： ISO C++11 30.3.1.2[thread.thread.constr] 。

自从
  build 327

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

参考 YSLib::UI::args, YSLib::UI::f, yforward , 以及 yunseq.

参考自 YSLib::UI::AddWidgets(), YSLib::UI::AddWidgetsZ(), YReader::ShlTextReader::BaseSession::BaseSession(), YReader::TextInfoBox::Refresh(), YSLib::UI::RemoveWidgets(), YReader::ReaderBox::UpdateData() , 以及 YReader::TextInfoBox::UpdateData().

这是这个函数的调用关系图:
template<typename _type , typename... _tParams>

auto ystdex::unsequenced | ( | _type && | arg,
|  | _tParams && | ...
| ) |  | -> decltype(std::forward<decltype( arg )>( arg ))

inline

无序列依赖表达式组求值实现。

返回
  第一个参数的引用。

自从
  build 296

在文件 ydef.h 第 731 行定义.

参考 yforward.

template<size_t _vN, typename... _tParams>

const auto ystdex::varg | ( | _tParams &&... | args | ) | -> decltype(variadic_param<_vN>::get(std::forward<decltype( args )>( args )...))

取指定位置的变长参数。

模板参数

  _vN | 表示参数位置的非负数，从左开始计数，第一个参数为 0 。

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

参考 YSLib::UI::args, ystdex::variadic_param< _vN >::get() , 以及 yforward.

函数调用图:
template<typename _tChar >

std::basic_string<_tChar> ystdex::vsfmt | ( | const _tChar * | fmt,
|  | std::va_list | args
| ) |  |

以 C 标准输出格式的输出 std::basic_string 实例的对象。

自从
  build 488

待办事项:
  提供 char 以外的模板参数的正确实现。

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

参考 YSLib::UI::args.

参考自 platform::LogWithSource() , 以及 sfmt().

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

void ystdex::yassert | ( | bool | ,
|  | const char * | ,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

YBase 默认断言函数。

注解
  当定义宏 YB_Use_YAssert 不等于 0 时，宏 YAssert 操作由此函数实现。
  参数依次为：是否触发、表达式、文件名、行号和消息文本。

自从
  build 432

void ystdex::ytrace | ( | std::FILE * | ,
|  | std::uint8_t | ,
|  | std::uint8_t | ,
|  | const char * | ,
|  | int | ,
|  | const char * | ,
|  |  | ...
| ) |  |

YCLib 调试跟踪函数。

自从
  build 432

注解
  当定义宏 YB_Use_YTrace 不等于 0 时，宏 YTrace 操作由此函数实现。

## 变量说明

const first_tag ystdex::get_first {}

操纵子。

自从
  build 288

在文件 iterator.hpp 第 784 行定义.

const struct ystdex::indirect_tag ystdex::get_indirect

参考自 YSLib::UI::MUIContainer::begin() , 以及 YSLib::UI::MUIContainer::end().

const first_tag ystdex::get_key {}

在文件 iterator.hpp 第 784 行定义.

参考自 YSLib::FetchFontFamilyNames(), YSLib::UI::FetchVisualStyleNames(), YSLib::UI::LocateForWidget() , 以及 YReader::ShlTextReader::SettingSession::SettingSession().

const second_tag ystdex::get_second {}

在文件 iterator.hpp 第 785 行定义.

const second_tag ystdex::get_value {}

在文件 iterator.hpp 第 785 行定义.

参考自 YSLib::UI::MUIContainer::begin(), YSLib::UI::MUIContainer::Contains(), YSLib::UI::MUIContainer::end(), YSLib::UI::Panel::MoveToFront() , 以及 YSLib::UI::MUIContainer::PaintVisibleChildren().

const class ystdex::nullptr_t ystdex::nullptr = {}