YSTest: ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq > 模板结构体 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | 静态 Public 成员函数 | 所有成员列表
ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq > 模板结构体 参考

按索引有序映射的特征适配模板。 更多...

`#include <bitseg.hpp>`

类 ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq > 继承关系图:
[图例]
ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq > 的协作图:
[图例]

## Public 类型

using | base = _tTraits
using | mapping = index_sequence< _vSeq... >
| 指定映射关系的索引序列。 更多...
template<size_t _vIdx>
using | map = vseq::at_t< mapping, _vIdx >
| 取指定的索引实现映射。 更多...
template<size_t _vIdx>
using | component_t = typename base::template component_t< map< _vIdx >::value >
template<size_t _vIdx>
using | component_width = typename base::template component_width< map< _vIdx >::value >
template<size_t _vIdx>
using | shift = typename base::template shift< map< _vIdx >::value >
template<size_t _vIdx>
using | mask = typename base::template mask< map< _vIdx >::value >
template<size_t _vIdx>
using | inversed_map = vseq::find_t< mapping, size_t_< _vIdx > >
| 在索引序列查找指定的索引以实现逆映射。 更多...
template<size_t _vIdx>
using | inversed_mapped_component_t = component_t< inversed_map< _vIdx >::value >

## 静态 Public 成员函数

template<size_t _vIdx>
static component_t< _vIdx > | extract (integer i)
template<size_t _vIdx>
static component_t< _vIdx > | lift (component_t< map< _vIdx >::value > val)
template<typename... _types>
static integer | pack (_types... xs)
template<size_t... _vIdxSeq>
static integer | project (index_sequence< _vIdxSeq... >, component_t< map< _vIdxSeq >::value >... xs)

## 详细描述

### template<class _tTraits, size_t... _vSeq>
struct ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >

按索引有序映射的特征适配模板。

前置条件
  第一模板参数指定的类型具有和 bitset_traits 的实例兼容的成员。
  静态断言：第一模板参数以外的参数数等于第一模板参数指定的分量数。

待办事项:
  静态断言检查索引序列的其它性质。

允许位段中分量依次和特定 size_t 类型的存储索引关联。 参数指定的索引构成索引序列，取值应为一个排列，即 0 到分量数减 1 的不重复整数值。 在索引序列上使用表示元素位置的逻辑分量索引指定特定的存储索引。 被适配的原始存储位置可通过恒等映射为存储索引等效表示，其索引序列以 0 起始严格递增。

在文件 bitseg.hpp 第 133 行定义.

## 成员类型定义说明

## ◆ base

template<class _tTraits , size_t... _vSeq>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::base = _tTraits

自从
  build 729
  build 728

在文件 bitseg.hpp 第 141 行定义.

## ◆ component_t

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::component_t = typename base::template component_t<map<_vIdx>::value>

在文件 bitseg.hpp 第 149 行定义.

## ◆ component_width

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::component_width = typename base::template component_width<map<_vIdx>::value>

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

## ◆ inversed_map

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::inversed_map = vseq::find_t<mapping, size_t_<_vIdx> >

在索引序列查找指定的索引以实现逆映射。

自从
  build 729

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

## ◆ inversed_mapped_component_t

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::inversed_mapped_component_t = component_t<inversed_map<_vIdx>::value>

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

## ◆ map

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::map = vseq::at_t<mapping, _vIdx>

取指定的索引实现映射。

在文件 bitseg.hpp 第 147 行定义.

## ◆ mapping

template<class _tTraits , size_t... _vSeq>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::mapping = index_sequence<_vSeq...>

指定映射关系的索引序列。

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

## ◆ mask

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::mask = typename base::template mask<map<_vIdx>::value>

在文件 bitseg.hpp 第 156 行定义.

## ◆ shift

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

using ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::shift = typename base::template shift<map<_vIdx>::value>

在文件 bitseg.hpp 第 154 行定义.

## 成员函数说明

## ◆ extract()

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

static component_t<_vIdx> ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::extract | ( | integer | i | ) |

inlinestatic

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

引用了 YSLib::i.

## ◆ lift()

template<class _tTraits , size_t... _vSeq>
template<size_t _vIdx>

static component_t<_vIdx> ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::lift | ( | component_t< map< _vIdx >::value > | val | ) |

inlinestatic

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

## ◆ pack()

template<class _tTraits , size_t... _vSeq>
template<typename... _types>

static integer ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::pack | ( | _types... | xs | ) |

inlinestatic

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

引用了 ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::project().

函数调用图:

## ◆ project()

template<class _tTraits , size_t... _vSeq>
template<size_t... _vIdxSeq>

static integer ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::project | ( | index_sequence< _vIdxSeq... > | ,
|  | component_t< map< _vIdxSeq >::value >... | xs
| ) |  |

inlinestatic

在文件 bitseg.hpp 第 189 行定义.

被这些函数引用 ystdex::nodep::ordered_bitseg_traits< _tTraits, _vSeq >::pack().

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

该结构体的文档由以下文件生成:

- bitseg.hpp