YSTest  PreAlpha_b400_20130424
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
ystdex 命名空间参考

命名空间

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

class  nullptr_t
 空指针类。 更多...
 
struct  empty_base
 空基类模板。 更多...
 
class  offsetof_check
 成员偏移计算静态类型检查。 更多...
 
union  non_aggregate_pod
 
union  pod_storage
 
class  void_ref
 任意对象引用类型。 更多...
 
class  any
 基于类型擦除的动态泛型对象。 更多...
 
class  bad_any_cast
 动态泛型转换失败异常。 更多...
 
struct  pseudo_output
 伪输出对象。 更多...
 
class  any_input_iterator
 动态泛型输入迭代器。 更多...
 
class  any_forward_iterator
 动态泛型前向迭代器。 更多...
 
class  any_bidirectional_iterator
 动态泛型双向迭代器。 更多...
 
class  container_inserter
 容器插入函数对象。 更多...
 
class  ifile_iterator
 基于 ISO C 标准库的流只读迭代器。 更多...
 
struct  make_parameter_tuple< _tRet(_tParams...)>
 
struct  make_parameter_tuple< _tRet(*)(_tParams...)>
 
struct  make_parameter_tuple< _tRet(&)(_tParams...)>
 
struct  make_parameter_tuple< _tRet(_tClass::*)(_tParams...)>
 
struct  make_parameter_tuple< _tRet(_tClass::*)(_tParams...) const >
 
struct  make_parameter_tuple< _tRet(_tClass::*)(_tParams...) volatile >
 
struct  make_parameter_tuple< _tRet(_tClass::*)(_tParams...) const volatile >
 
struct  return_of< _tResult(_tParams...)>
 
struct  return_of< _tResult(*)(_tParams...)>
 
struct  return_of< _tResult(&)(_tParams...)>
 
struct  return_of< _tResult(_tClass::*)(_tParams...)>
 
struct  return_of< _tResult(_tClass::*)(_tParams...) const >
 
struct  return_of< _tResult(_tClass::*)(_tParams...) volatile >
 
struct  return_of< _tResult(_tClass::*)(_tParams...) const volatile >
 
struct  parameter_of
 取指定索引的参数类型。 更多...
 
struct  paramlist_size
 取参数列表大小。 更多...
 
struct  wrapped_traits
 取 std::reference_wrapper 实例特征。 更多...
 
struct  wrapped_traits< std::reference_wrapper< _tWrapped > >
 
struct  ref_eq
 引用相等关系仿函数。 更多...
 
struct  xcrease_t
 编译期选择自增/自减运算仿函数。 更多...
 
struct  xcrease_t< false, _tScalar >
 
struct  delta_assignment
 编译期选择加法/减法复合赋值运算仿函数。 更多...
 
struct  delta_assignment< false, _tScalar1, _tScalar2 >
 
struct  deref_op
 引用仿函数。 更多...
 
struct  const_deref_op
 const 引用仿函数。 更多...
 
struct  deref_comp
 间接访问比较仿函数。 更多...
 
struct  deref_str_comp
 间接访问字符串比较仿函数。 更多...
 
class  pointer_iterator
 指针迭代器。 更多...
 
struct  pointer_classify
 指针包装为类类型迭代器。 更多...
 
struct  pointer_classify< _type * >
 
class  pseudo_iterator
 伪迭代器。 更多...
 
class  transformed_iterator
 转换迭代器。 更多...
 
struct  indirect_tag
 
class  pair_iterator
 成对迭代器。 更多...
 
class  subscriptive_iterator
 成员下标迭代器。 更多...
 
struct  fixed_multiplicative
 定点数乘除法中间类型。 更多...
 
struct  fixed_multiplicative< std::int64_t >
 
struct  fixed_multiplicative< std::uint64_t >
 
class  fixed_point
 通用定点数。 更多...
 
struct  string_traits
 字符串特征。 更多...
 
struct  is_returnable
 判断指定类型是否可作为返回值类型。 更多...
 
struct  is_decayable
 判断是否可被退化。 更多...
 
struct  is_class_pointer
 判断指定类型是否是指向类类型对象的指针。 更多...
 
struct  is_lvalue_class_reference
 判断指定类型是否是左值类类型引用。 更多...
 
struct  is_rvalue_class_reference
 判断指定类型是否是右值类类型引用。 更多...
 
struct  is_pod_struct
 判断指定类型是否是 POD struct 。 更多...
 
struct  is_pod_union
 判断指定类型是否是 POD union 。 更多...
 
struct  has_subscription
 判断是否存在合式的结果为非 void 类型的 [] 操作符接受指定类型的表达式。 更多...
 
struct  has_equality_operator
 判断是否存在合式的结果可转换为 bool 类型的 == 操作符接受指定类型的表达式。 更多...
 
struct  has_nonempty_virtual_base
 判断指定类型是否有非空虚基类。 更多...
 
struct  has_common_nonempty_virtual_base
 判断指定的两个类类型是否有非空虚基类。 更多...
 
struct  identity
 恒等元函数。 更多...
 
struct  remove_rcv
 移除可能被 cv-qualifier 修饰的引用类型。 更多...
 
struct  remove_rp
 移除指针和引用类型。 更多...
 
struct  remove_rpcv
 移除可能被 cv-qualifier 修饰的引用和指针类型。 更多...
 
struct  array_decay
 数组类型退化。 更多...
 
struct  qualified_decay
 保持修饰符的类型退化。 更多...
 
struct  array_ref_decay
 数组及数组引用类型退化。 更多...
 
struct  array_ref_decay< _type & >
 
struct  array_ref_decay< _type && >
 
struct  integer_width
 取指定整数类型的位宽度。 更多...
 
struct  make_signed_c
 取指定整数类型和条件表达式对应的有符号或无符号整数类型。 更多...
 
struct  make_signed_c< _type, false >
 
struct  make_fixed_width_int
 取按指定宽度的整数类型。 更多...
 
struct  make_fixed_width_int< 8U >
 
struct  make_fixed_width_int< 16U >
 
struct  make_fixed_width_int< 32U >
 
struct  make_fixed_width_int< 64U >
 
struct  n_tag
 标记。 更多...
 
struct  n_tag< 0 >
 
struct  variadic_sequence
 变量参数标记。 更多...
 
struct  make_successor< variadic_sequence< _vSeq...> >
 
struct  make_natural_sequence
 取自然数变量标记序列。 更多...
 
struct  make_natural_sequence< 0 >
 
class  noncopyable
 
class  nonmovable
 
class  nifty_counter
 使用引用计数的静态初始化管理器。 更多...
 
class  call_once_init
 使用 call_once 的静态初始化管理器。 更多...
 

类型定义

typedef unsigned char byte
 字节类型。
 
typedef int errno_t
 
typedef any_forward_iterator
< void_ref, ptrdiff_t, void
*, void_ref
forward_monomorphic_iterator
 
typedef
any_bidirectional_iterator
< void_ref, ptrdiff_t, void
*, void_ref
bidirectional_monomorphic_iterator
 
typedef n_tag< 0 > first_tag
 第一分量标记。
 
typedef n_tag< 1 > second_tag
 第二分量标记。
 
typedef char * path_t
 路径类型定义。
 
typedef const char * const_path_t
 

函数

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 _tForward >
_tForward stable_range_unique (_tForward first, _tForward last)
 去除迭代器指定的范围中的重复元素,且不改变元素之间的相对顺序。
 
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool operator== (const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &x, const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &y)
 
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool operator!= (const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &x, const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &y)
 
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool is_undereferenceable (const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &i)
 
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool operator== (const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &x, const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &y)
 
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool operator!= (const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &x, const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &y)
 
template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool is_undereferenceable (const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &i)
 
template<typename _tDst , typename _tSrc >
_tDst union_cast (_tSrc x) ynoexcept
 使用匿名联合体进行的类型转换。
 
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 _pDst , class _tSrc >
_pDst polymorphic_downcast (_tSrc *x)
 多态类指针向派生类指针转换。
 
template<typename _rDst , class _tSrc >
_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 _tContainer , typename... _tParams>
void seq_insert (_tContainer &cont, _tParams &&...args)
 顺序插入值至指定容器。
 
template<typename _tContainer >
void erase_all (_tContainer &c, const typename _tContainer::value_type &val)
 删除指定序列容器中和指定值的相等的元素。
 
template<typename _tContainer , typename _tIn , typename _tValue >
void erase_all (_tContainer &c, _tIn first, _tIn last, const _tValue &value)
 删除指定容器中迭代器区间中和指定值的相等的元素。
 
template<typename _tRange , typename _fPredicate >
void erase_all_if (_tRange &c, _fPredicate pred)
 删除指定序列范围(包含序列容器及内建数组等)中满足条件的元素。
 
template<typename _tContainer , typename _tIn , typename _fPredicate >
void erase_all_if (_tContainer &c, _tIn first, _tIn last, _fPredicate pred)
 删除指定容器中迭代器区间中满足条件的元素。
 
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 对象。
 
bool fexists (const char *) ynoexcept
 判断指定路径的文件是否存在。
 
const char * openmode_conv (std::ios_base::openmode) ynoexcept
 
std::ios_base::openmode openmode_conv (const char *) ynoexcept
 
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 >
const bool is_null (_tChar c)
 使用 std::char_traits::eq 判断是否为空字符。
 
template<typename _tChar >
size_t ntctslen (const _tChar *s)
 计算简单 NTCTS 长度。zz
 
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 >
const size_t const_ntctslen (const _tChar *s)
 计算简单 NTCTS 长度。
 
template<typename _tChar >
const size_t const_ntctscnt (const _tChar *s, _tChar c)
 计算简单 NTCTS 中的指定字符数。
 
template<typename _tChar >
const std::char_traits< _tChar >
::int_type 
const_ntctscmp (const _tChar *s1, const _tChar *s2)
 比较简单 NTCTS 。
 
template<typename _tChar >
const std::char_traits< _tChar >
::int_type 
const_ntctscmp (const _tChar *s1, const _tChar *s2, size_t n)
 比较限制长度上限的简单 NTCTS 。
 
template<typename _tChar >
const size_t const_ntctschr (const _tChar *s, _tChar c)
 在简单 NTCTS 中顺序查找指定字符。
 
template<typename _tChar >
const size_t const_ntctschrn (const _tChar *s, _tChar c, size_t n)
 在简单 NTCTS 中顺序查找第指定次数出现的指定字符。
 
template<typename _tChar >
const size_t const_ntctsstr (const _tChar *s1, const _tChar *s2)
 在简单 NTCTS 中顺序查找作为子串的指定 NTCTS 。
 
template<typename... _tParams>
size_t sizeof_params (_tParams &&...)
 统计函数参数列表中的参数个数。
 
template<typename _fCallable , typename... _tParams>
void unseq_apply (_fCallable &&f, _tParams &&...args)
 无序调用。
 
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 _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 _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 , typename _fTransformer >
transformed_iterator< typename
array_ref_decay< _tIterator >
::type, _fTransformer > 
make_transform (_tIterator &&i, _fTransformer &&f)
 创建转换迭代器。
 
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<class _tContainer , typename _type >
bool operator== (const subscriptive_iterator< _tContainer, _type > &x, const subscriptive_iterator< _tContainer, _type > &y)
 比较成员下标迭代器的相等性。
 
template<class _tContainer , typename _type >
bool operator!= (const subscriptive_iterator< _tContainer, _type > &x, const subscriptive_iterator< _tContainer, _type > &y)
 比较成员下标迭代器的不等性。
 
template<typename _tIterator >
bool is_undereferenceable (const _tIterator &)
 
template<typename _type >
bool is_undereferenceable (_type *p)
 
template<typename _type >
_type * raw (_type *const &p) ynoexcept
 
template<typename _type >
auto raw (const std::unique_ptr< _type > &p) ynoexcept-> decltype(p.get())
 
template<typename _type >
_type * raw (const std::shared_ptr< _type > &p) ynoexcept
 
template<typename _type >
_type * raw (const std::weak_ptr< _type > &p) ynoexcept
 
template<typename _type >
bool reset (std::unique_ptr< _type > &p) ynoexcept
 
template<typename _type >
bool reset (std::shared_ptr< _type > &p) ynoexcept
 
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) ynoexcept
 
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) ynoexcept
 
template<typename _type , typename... _tParams>
std::unique_ptr< _type > make_unique (_tParams &&...args)
 使用 new 和指定参数构造指定类型的 std::unique_ptr 实例。
 
template<typename _type , typename... _tParams>
std::shared_ptr< _type > make_shared (_tParams &&...args)
 使用 new 和指定参数构造指定类型的 std::shared_ptr 实例。
 
template<typename _tDst , typename _tSrc >
_tDst exp2u (_tSrc n) ynoexcept
 取无符号整数的以 2 为底的无符号整数次幂,结果转换为指定目标类型。
 
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 _fPred , typename _fInsert , typename _tIn >
_tIn 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 _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< _type >::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 _tPointer >
_tPointer any_cast (any *p) ynoexcept
 动态泛型转换。
 
template<typename _tPointer >
_tPointer any_cast (const any *p) ynoexcept
 
template<typename _tValue >
_tValue any_cast (any &x)
 
template<typename _tValue >
_tValue any_cast (const any &x)
 
template<typename _type >
_type * unsafe_any_cast (any *p)
 非安全动态泛型转换。
 
template<typename _type >
const _type * unsafe_any_cast (const any *p)
 
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 _tContainer , typename... _tParams>
void assign (_tContainer &con, _tParams &&...args)
 插入参数指定的元素到容器。
 
template<class _tContainer , typename _type , size_t _vN>
void assign (_tContainer &con, const _type(&arr)[_vN])
 
template<class _tContainer , typename _tKey >
auto at (_tContainer &con, const _tKey &k) -> decltype(con.at(k))
 访问关联容器。

异常
std::out_of_range访问的值不存在。

 
template<class _tContainer , typename _tKey >
const _tKey & at (const _tContainer &con, const _tKey &k)
 
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) ynoexcept
 解除引用包装。
 
template<typename _type >
_type & unref (const std::reference_wrapper< _type > &x) ynoexcept
 
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 >
bool operator== (const pointer_iterator< _type > &x, const pointer_iterator< _type > &y)
 
template<typename _type >
bool operator!= (const pointer_iterator< _type > &x, const pointer_iterator< _type > &y)
 
template<typename _type , typename _tIterator , typename _tTraits >
bool operator== (const pseudo_iterator< _type, _tIterator, _tTraits > &x, const pseudo_iterator< _type, _tIterator, _tTraits > &y)
 
template<typename _type , typename _tIterator , typename _tTraits >
bool operator!= (const pseudo_iterator< _type, _tIterator, _tTraits > &x, const pseudo_iterator< _type, _tIterator, _tTraits > &y)
 
template<typename _type , typename _fTransformer >
bool operator== (const transformed_iterator< _type, _fTransformer > &x, const transformed_iterator< _type, _fTransformer > &y)
 
template<typename _type , typename _fTransformer >
bool operator!= (const transformed_iterator< _type, _fTransformer > &x, const transformed_iterator< _type, _fTransformer > &y)
 
template<typename _tMaster , typename _tSlave >
bool operator== (const pair_iterator< _tMaster, _tSlave > &x, const pair_iterator< _tMaster, _tSlave > &y)
 
template<typename _tMaster , typename _tSlave >
bool operator!= (const pair_iterator< _tMaster, _tSlave > &x, const pair_iterator< _tMaster, _tSlave > &y)
 
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, typename std::enable_if< std::is_enum< _type >::value, int >::type=0)
 
template<typename _type , size_t _vN>
size_t arrlen (_type(&)[_vN])
 计算指定数组类型对象的长度。
 
template<typename _type , size_t _vN>
size_t arrlen (_type(&&)[_vN])
 

变量

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 {}
 
struct ystdex::indirect_tag get_indirect
 
typedef any_input_iterator
< void_ref, ptrdiff_t, void
*, void_ref
input_monomorphic_iterator
 
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)
 

类型定义说明

typedef unsigned char ystdex::byte

字节类型。

注解
ISO C++ 对访问存储的 glvalue 的类型有严格限制,当没有对象生存期保证时, 仅允许(可能 cv 修饰的) char 和 unsigned char 及其指针/引用或 void* , 而不引起未定义行为(undefined behavior) 。

在文件 ydef.h429 行定义.

typedef const char* ystdex::const_path_t

在文件 cstdio.h46 行定义.

typedef int ystdex::errno_t

在文件 ydef.h431 行定义.

在文件 any_iterator.hpp341 行定义.

typedef char* ystdex::path_t

路径类型定义。

自从
build 216

在文件 cstdio.h45 行定义.

函数说明

template<typename _tPointer >
_tPointer ystdex::any_cast ( any *  p)
inline

动态泛型转换。

注解
语义同 boost::any_cast 。
自从
build 398
待办事项:
检验特定环境(如使用动态库时)比较 std::type_info::name() 的必要性。
返回
x != nullptr && x->type() == typeid(remove_pointer< _tPointer>::type) 为指向对象的指针,否则为空指针。

在文件 any.h776 行定义.

参考自 YSLib::ValueObject::Access() , 以及 YSLib::ValueObject::AccessPtr().

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

template<typename _tPointer >
_tPointer ystdex::any_cast ( const any *  p)
inline

在文件 any.h781 行定义.

template<typename _tValue >
_tValue ystdex::any_cast ( any &  x)
inline
异常
bad_any_castx.type() != typeid(remove_reference<_tValue>::type)

在文件 any.h792 行定义.

template<typename _tValue >
_tValue ystdex::any_cast ( const any &  x)

在文件 any.h802 行定义.

template<class _tContainer , typename _tKey >
auto ystdex::at ( _tContainer &  con,
const _tKey &  k 
) -> decltype(con.at(k))

访问关联容器。

异常
std::out_of_range访问的值不存在。

自从
build 399

在文件 container.hpp67 行定义.

参考自 AccessNode().

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

template<class _tContainer , typename _tKey >
const _tKey& ystdex::at ( const _tContainer &  con,
const _tKey &  k 
)

在文件 container.hpp74 行定义.

参考 YSLib::end().

函数调用图:

template<typename _fCallable , typename... _tParams>
void ystdex::call_once ( bool &  b,
_fCallable &&  f,
_tParams &&...  args 
)
inline

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

注解
类似 std::call_once ,但多线程环境下失效。
ISO C++11(至 N3376 ) 30.4 synopsis 处的声明存在错误。
自从
build 327

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

在文件 utility.hpp165 行定义.

参考 yforward.

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

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

template<typename _tDst , typename _tSrc >
_tDst ystdex::exp2u ( _tSrc  n)
inline

取无符号整数的以 2 为底的无符号整数次幂,结果转换为指定目标类型。

模板参数
_tSrc源类型。
_tDst目标类型。
前置条件
静态断言: is_unsigned<_tSrc>::value
自从
build 260

在文件 rational.hpp48 行定义.

bool ystdex::fexists ( const char *  path)

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

注解
使用 std::fopen 实现。
前置条件
断言:参数非空。
自从
build 326

在文件 cstdio.cpp35 行定义.

参考 yconstraint.

参考自 YSLib::Drawing::FontCache::LoadTypefaces() , 以及 platform::ufexists().

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

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.hpp217 行定义.

参考 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.hpp237 行定义.

参考 yforward.

template<typename _tDst , typename... _tSrc>
std::initializer_list<_tDst> ystdex::initializer_cast ( _tSrc &&...  x)
inline

初值符列表转换。

模板参数
_tSrc源类型。
_tDst目标类型。
自从
build 304

在文件 cast.hpp76 行定义.

参考 yforward.

template<typename _tChar >
const bool ystdex::is_null ( _tChar  c)

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

自从
build 329

在文件 cstring.h86 行定义.

参考自 const_ntctschr(),const_ntctschrn(),const_ntctscmp(),const_ntctscnt(),const_ntctslen(),const_ntctsstr(),MBCSToUCS2(),ntctscmp(),ntctsicmp(),ntctslen(),UCS2ToMBCS() , 以及 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.hpp338 行定义.

参考自 CHRLib::FillByte(),ystdex::any_ops::iterator_handler< _type >::manage() , 以及 Session::Session().

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

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool ystdex::is_undereferenceable ( const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &  i)
inline

在文件 any_iterator.hpp381 行定义.

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool ystdex::is_undereferenceable ( const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &  i)
inline

在文件 any_iterator.hpp433 行定义.

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

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

自从
build 337

在文件 container.hpp211 行定义.

参考 decay_copy() , 以及 yforward.

函数调用图:

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

在文件 cstdio.cpp49 行定义.

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

在文件 cstdio.cpp76 行定义.

参考 yunseq().

函数调用图:

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

在文件 cstdio.h178 行定义.

template<typename _type >
bool ystdex::operator!= ( const pointer_iterator< _type > &  x,
const pointer_iterator< _type > &  y 
)
inline

在文件 iterator.hpp263 行定义.

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.hpp335 行定义.

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool ystdex::operator!= ( const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &  x,
const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &  y 
)
inline

在文件 any_iterator.hpp378 行定义.

template<typename _type , typename _tIterator , typename _tTraits >
bool ystdex::operator!= ( const pseudo_iterator< _type, _tIterator, _tTraits > &  x,
const pseudo_iterator< _type, _tIterator, _tTraits > &  y 
)
inline

在文件 iterator.hpp420 行定义.

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool ystdex::operator!= ( const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &  x,
const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &  y 
)
inline

在文件 any_iterator.hpp430 行定义.

template<typename _type >
bool ystdex::operator!= ( nullptr_t  lhs,
const _type &  rhs 
)
inline

在文件 ydef.h498 行定义.

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

函数调用图:

template<typename _type >
bool ystdex::operator!= ( const _type &  lhs,
nullptr_t  rhs 
)
inline

在文件 ydef.h504 行定义.

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

函数调用图:

template<typename _type , typename _fTransformer >
bool ystdex::operator!= ( const transformed_iterator< _type, _fTransformer > &  x,
const transformed_iterator< _type, _fTransformer > &  y 
)
inline

在文件 iterator.hpp538 行定义.

template<typename _tMaster , typename _tSlave >
bool ystdex::operator!= ( const pair_iterator< _tMaster, _tSlave > &  x,
const pair_iterator< _tMaster, _tSlave > &  y 
)
inline

在文件 iterator.hpp794 行定义.

template<class _tContainer , typename _type >
bool ystdex::operator!= ( const subscriptive_iterator< _tContainer, _type > &  x,
const subscriptive_iterator< _tContainer, _type > &  y 
)

比较成员下标迭代器的不等性。

自从
build 356

在文件 iterator.hpp951 行定义.

template<typename _type >
bool ystdex::operator== ( const pointer_iterator< _type > &  x,
const pointer_iterator< _type > &  y 
)
inline
自从
build 356

在文件 iterator.hpp254 行定义.

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.hpp333 行定义.

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool ystdex::operator== ( const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &  x,
const any_forward_iterator< _type, _tDifference, _tPointer, _tReference > &  y 
)
inline

在文件 any_iterator.hpp376 行定义.

template<typename _type , typename _tIterator , typename _tTraits >
bool ystdex::operator== ( const pseudo_iterator< _type, _tIterator, _tTraits > &  x,
const pseudo_iterator< _type, _tIterator, _tTraits > &  y 
)
inline
自从
build 356

在文件 iterator.hpp412 行定义.

参考 ystdex::pseudo_iterator< _type, _tIterator, _tTraits >::value.

template<typename _type , typename _tDifference , typename _tPointer , typename _tReference >
bool ystdex::operator== ( const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &  x,
const any_bidirectional_iterator< _type, _tDifference, _tPointer, _tReference > &  y 
)
inline

在文件 any_iterator.hpp428 行定义.

template<typename _type >
bool ystdex::operator== ( nullptr_t  lhs,
const _type &  rhs 
)
inline
自从
build 316

在文件 ydef.h485 行定义.

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

函数调用图:

template<typename _type >
bool ystdex::operator== ( const _type &  lhs,
nullptr_t  rhs 
)
inline

在文件 ydef.h491 行定义.

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

函数调用图:

template<typename _type , typename _fTransformer >
bool ystdex::operator== ( const transformed_iterator< _type, _fTransformer > &  x,
const transformed_iterator< _type, _fTransformer > &  y 
)
inline
自从
build 356

在文件 iterator.hpp530 行定义.

参考 ystdex::transformed_iterator< _tIterator, _fTransformer >::get().

函数调用图:

template<typename _tMaster , typename _tSlave >
bool ystdex::operator== ( const pair_iterator< _tMaster, _tSlave > &  x,
const pair_iterator< _tMaster, _tSlave > &  y 
)
自从
build 356

在文件 iterator.hpp785 行定义.

参考 ystdex::pair_iterator< _tMaster, _tSlave, _tTraits >::base().

函数调用图:

template<class _tContainer , typename _type >
bool ystdex::operator== ( const subscriptive_iterator< _tContainer, _type > &  x,
const subscriptive_iterator< _tContainer, _type > &  y 
)

比较成员下标迭代器的相等性。

自从
build 356

在文件 iterator.hpp939 行定义.

参考 ystdex::subscriptive_iterator< _tContainer, _type >::equals().

函数调用图:

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.hpp607 行定义.

参考 ystdex::iterator_transformation::first(),make_transform() , 以及 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.hpp616 行定义.

参考 make_transform(),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.hpp626 行定义.

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

函数调用图:

template<typename _type , typename , typename... >
_type& ystdex::parameterize_static_object ( )
inline

类型参数化静态对象。

警告
不可重入。
非线程安全。
自从
build 303

在文件 utility.hpp183 行定义.

template<typename _type , size_t... >
_type& ystdex::parameterize_static_object ( )
inline

非类型参数化静态对象。

警告
不可重入。
非线程安全。
自从
build 301

在文件 utility.hpp197 行定义.

template<typename _fCallable >
void ystdex::seq_apply ( _fCallable &&  )
inline

顺序递归调用。

参见
关于调用参数类型: ISO C++11 30.3.1.2[thread.thread.constr] 。
自从
build 327

在文件 functional.hpp60 行定义.

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

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

template<typename _fCallable , typename _type , typename... _tParams>
void ystdex::seq_apply ( _fCallable &&  f,
_type &&  arg,
_tParams &&...  args 
)
inline

在文件 functional.hpp64 行定义.

参考 decay_forward(),seq_apply() , 以及 yforward.

函数调用图:

template<typename _tContainer , typename... _tParams>
void ystdex::seq_insert ( _tContainer &  cont,
_tParams &&...  args 
)
inline

顺序插入值至指定容器。

自从
build 338

在文件 container.hpp122 行定义.

参考 seq_apply() , 以及 yforward.

参考自 YSLib::CollectNodes().

函数调用图:

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

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

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

待办事项:
提供 char 以外的模板参数的正确实现。
注解
Clang++ 对于模板声明直接提示格式字符串类型错误。
自从
build 322

在文件 string.hpp202 行定义.

参考自 YSLib::Drawing::FontCache::FontCache(),GetDesktopDownHandle() , 以及 operator>>().

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

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.hpp46 行定义.

template<typename _tForward >
_tForward ystdex::stable_range_unique ( _tForward  first,
_tForward  last 
)

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

参数
first输入范围起始迭代器。
last输入范围终止迭代器。
返回
输出范围终止迭代器。
注解
输入和输出范围的起始迭代器相同。
输出范围元素之间的相对顺序和输入的范围保持一致。
时间复杂度: O(n^2) ,其中 n 满足 std::advance(first, n) == last
自从
build 265

在文件 algorithm.hpp129 行定义.

参考 std::swap().

函数调用图:

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

在文件 cstring.cpp59 行定义.

参考 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.cpp41 行定义.

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

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

返回
返回目标参数。

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

在文件 cstring.cpp47 行定义.

参考 YB_UNLIKELY.

参考自 strcatdup().

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

size_t ystdex::strlen_n ( const char *  s)

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

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

在文件 cstring.cpp35 行定义.

参考自 IsStemOf().

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

template<typename _type , size_t _vN, typename _tSrc >
std::array<_type, _vN> ystdex::to_array ( const _tSrc &  src)
inline

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

自从
build 337

在文件 container.hpp224 行定义.

template<typename _type , size_t _vN>
std::array<_type, _vN> ystdex::to_array ( const std::array< _type, _vN > &  src)
inline

在文件 container.hpp230 行定义.

template<typename _type , size_t _vN, typename _tSrcElement >
std::array<_type, _vN> ystdex::to_array ( const _tSrcElement(&)  src[_vN])
inline

在文件 container.hpp236 行定义.

template<typename _type , size_t _vN, typename _tSrcElement >
std::array<_type, _vN> ystdex::to_array ( _tSrcElement(&&)  src[_vN])
inline

在文件 container.hpp245 行定义.

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

转换为字符串。

注解
可与 std::to_string 共用以避免某些类型转换警告, 如 g++ 的 [-Wsign-promo] 。
自从
build 308

在文件 string.hpp172 行定义.

参考自 FetchEncodingString(),GetDesktopDownHandle(),Reduce(),ShlReader::SaveBookmarks(),ColorBox::SetColor(),YSLib::StringifyToNode(),to_string(),to_string(),TextInfoBox::UpdateData() , 以及 SettingPanel::UpdateInfo().

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

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

在文件 string.hpp177 行定义.

参考 to_string().

函数调用图:

template<typename _type >
std::string ystdex::to_string ( _type  val,
typename std::enable_if< std::is_enum< _type >::value, int >::type  = 0 
)
inline

在文件 string.hpp183 行定义.

参考 to_string().

函数调用图:

template<typename _type >
_type& ystdex::unref ( _type &&  x)

解除引用包装。

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

在文件 functional.hpp253 行定义.

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

在文件 functional.hpp258 行定义.

template<typename _type >
_type* ystdex::unsafe_any_cast ( any *  p)
inline

非安全动态泛型转换。

注解
语义同 boost::unsafe_any_cast 。
前置条件
断言: p
自从
build 331

在文件 any.h822 行定义.

template<typename _type >
const _type* ystdex::unsafe_any_cast ( const any *  p)
inline

在文件 any.h831 行定义.

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.hpp79 行定义.

参考 decay_forward(),yforward , 以及 yunseq().

参考自 YSLib::UI::AddWidgets(),YSLib::UI::AddWidgetsZ(),TextInfoBox::Refresh() , 以及 YSLib::UI::RemoveWidgets().

函数调用图:

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

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

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

返回
第一个参数的引用。
自从
build 296

在文件 ydef.h578 行定义.

参考 yforward.

变量说明

const first_tag ystdex::get_first {}

操纵子。

自从
build 288

在文件 iterator.hpp594 行定义.

const second_tag ystdex::get_second {}

在文件 iterator.hpp595 行定义.

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