YSTest: Functional Sequence Operations

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

Functional Sequence Operations
Template Meta Programing » Meta Operations

变长参数标记的序列相关的函数模板操作。 更多...

Functional Sequence Operations 的协作图:

template<typename _tInt , _tInt _vInt, _tInt... _vSeq>
std::integral_constant< _tInt, _vInt > | ystdex::fseq::front (integer_sequence< _tInt, _vInt, _vSeq... >)
template<typename _tInt , _tInt _vInt, _tInt... _vSeq>
integer_sequence< _tInt, _vSeq... > | ystdex::fseq::pop_front (integer_sequence< _tInt, _vInt, _vSeq... >)
template<typename _func , typename _tState , typename _tInt >
_tState | ystdex::fseq::fold (_func, _tState s, integer_sequence< _tInt >)
template<typename _func , typename _tState , typename _tInt , _tInt _vInt, _tInt... _vSeq>
auto | ystdex::fseq::fold (_func f, _tState s, integer_sequence< _tInt, _vInt, _vSeq... > xs) -> decltype(fold(f, f(s, front(xs)), pop_front(xs)))
template<typename _type , typename... _types>
identity< _type > | ystdex::fseq::front (empty_base< _type, _types... >)
template<typename _type , typename... _types>
empty_base< _types... > | ystdex::fseq::pop_front (empty_base< _type, _types... >)
template<typename _func , typename _tState >
_tState | ystdex::fseq::fold (_func, _tState s, empty_base<>)
template<typename _func , typename _tState , typename _type , typename... _types>
auto | ystdex::fseq::fold (_func f, _tState s, empty_base< _type, _types... > xs) -> decltype(fold(f, f(s, front(xs)), pop_front(xs)))
template<typename _func , typename _tState >
_tState | ystdex::fseq::vfold (_func, _tState s)
template<typename _func , typename _tState , typename _type , typename... _types>
_tState | ystdex::fseq::vfold (_func f, _tState s, _type x, _types...xs)

## 详细描述

变长参数标记的序列相关的函数模板操作。

自从
  build 728

形式为函数模板声明的相关操作，被操作的序列是类类型。 直接返回类型元素的结果被 identity 包装。使用递归实现的调用不应使用 ADL 。 除此处的特化外，可有其它类类型的重载，不一定适用 identity 包装。 用户类型可使用 ADL 。

## 函数说明

template<typename _func , typename _tState >

_tState ystdex::fseq::fold | ( | _func | ,
|  | _tState | s,
|  | empty_base<> |
| ) |  |

inline

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

参考 CHRLib::s.

template<typename _func , typename _tState , typename _type , typename... _types>

auto ystdex::fseq::fold | ( | _func | f,
|  | _tState | s,
|  | empty_base< _type, _types... > | xs
| ) |  | -> decltype(fold(f, f(s, front(xs)), pop_front(xs)))

inline

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

参考 CHRLib::f(), ystdex::fseq::fold(), ystdex::fseq::front, ystdex::fseq::pop_front , 以及 CHRLib::s.

函数调用图:
template<typename _func , typename _tState , typename _tInt >

_tState ystdex::fseq::fold | ( | _func | ,
|  | _tState | s,
|  | integer_sequence< _tInt > |
| ) |  |

inline

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

参考 CHRLib::s.

参考自 ystdex::fseq::fold().

这是这个函数的调用关系图:
template<typename _func , typename _tState , typename _tInt , _tInt _vInt, _tInt... _vSeq>

auto ystdex::fseq::fold | ( | _func | f,
|  | _tState | s,
|  | integer_sequence< _tInt, _vInt, _vSeq... > | xs
| ) |  | -> decltype(fold(f, f(s, front(xs)), pop_front(xs)))

inline

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

参考 CHRLib::f(), ystdex::fseq::fold(), ystdex::fseq::front, ystdex::fseq::pop_front , 以及 CHRLib::s.

函数调用图:
template<typename _tInt , _tInt _vInt, _tInt... _vSeq>

std::integral_constant<_tInt, _vInt> ystdex::fseq::front | ( | integer_sequence< _tInt, _vInt, _vSeq... > |  | ) |

inline

自从
  build 728

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

template<typename _tInt , _tInt _vInt, _tInt... _vSeq>

integer_sequence<_tInt, _vSeq...> ystdex::fseq::pop_front | ( | integer_sequence< _tInt, _vInt, _vSeq... > |  | ) |

inline

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

template<typename _func , typename _tState >

_tState ystdex::fseq::vfold | ( | _func | ,
|  | _tState | s
| ) |  |

inline

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

参考 CHRLib::s.

参考自 ystdex::bitseg_traits< _vSize >::project() , 以及 ystdex::fseq::vfold().

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

_tState ystdex::fseq::vfold | ( | _func | f,
|  | _tState | s,
|  | _type | x,
|  | _types... | xs
| ) |  |

inline

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

参考 CHRLib::f() , 以及 ystdex::fseq::vfold().

函数调用图:

## 变量说明

template<typename _type , typename... _types>

identity<_type> ystdex::fseq::front(empty_base< _type, _types... >)

inline

自从
  build 728

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

参考自 ystdex::fseq::fold(), ystdex::path< _tSeqCon, _tTraits >::get_root(), ystdex::path< _tSeqCon, _tTraits >::is_absolute(), NPL::IsNPLAExtendedLiteral() , 以及 ystdex::path< _tSeqCon, _tTraits >::operator/=().

template<typename _type , typename... _types>

empty_base<_types...> ystdex::fseq::pop_front(empty_base< _type, _types... >)

inline

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

参考自 ystdex::fseq::fold() , 以及 ystdex::recent_used_list< _tKey, _tMapped, _tAlloc >::undo_emplace().