YSTest: ystdex::bitseg_traits< _vSize > 模板结构体 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

- 类列表
- 类索引
- 类继承关系
- 类成员

所有成员列表
ystdex::bitseg_traits< _vSize > 模板结构体 参考
Template Meta Programing » Meta Operations » Metafunctions » Type Traits Operations

位段特征。 更多...

`#include <bitseg.hpp>`

ystdex::bitseg_traits< _vSize > 的协作图:
[图例]

using | sequence = index_sequence< _vSize... >
using | array = byte[bytes_n]
using | integer = typename ystdex::make_width_int< bits_n >::unsigned_least_type
template<size_t _vIdx>
using | component_width = vseq::at_t< sequence, _vIdx >
template<size_t _vIdx>
using | component_t = typename ystdex::make_width_int< component_width< _vIdx >::value >::unsigned_least_type
template<size_t _vIdx>
using | shift = decltype(fseq::fold(fseq::plus(), size_t_< 0 >(), vseq::split_n_t< _vIdx, sequence >()))
template<size_t _vIdx>
using | mask = std::integral_constant< integer,((1ULL<< component_width< _vIdx >::value)-1)<< shift< _vIdx >::value >
static size_t | bits_n
static size_t | bytes_n = (bits_n + CHAR_BIT - 1) / CHAR_BIT
template<size_t _vIdx>
static component_t< _vIdx > | extract (integer i)
template<size_t _vIdx>
static integer | lift (component_t< _vIdx > val)
template<typename... _types>
static integer | pack (_types...xs)
template<size_t... _vIdxSeq>
static integer | project (index_sequence< _vIdxSeq... >, component_t< _vIdxSeq >...xs)

## 详细描述

### template<size_t... _vSize>
struct ystdex::bitseg_traits< _vSize >

位段特征。

自从
  build 729

描述以整数位序压缩存储的若干个位的特性。 参数指定不同分量的位宽，其顺序隐含存储顺序。

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

## 成员类型定义说明

template<size_t... _vSize>

using ystdex::bitseg_traits< _vSize >::array = byte[bytes_n]

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

template<size_t... _vSize>
template<size_t _vIdx>

using ystdex::bitseg_traits< _vSize >::component_t = typename ystdex::make_width_int< component_width<_vIdx>::value>::unsigned_least_type

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

template<size_t... _vSize>
template<size_t _vIdx>

using ystdex::bitseg_traits< _vSize >::component_width = vseq::at_t<sequence, _vIdx>

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

template<size_t... _vSize>

using ystdex::bitseg_traits< _vSize >::integer = typename ystdex::make_width_int<bits_n>::unsigned_least_type

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

template<size_t... _vSize>
template<size_t _vIdx>

using ystdex::bitseg_traits< _vSize >::mask = std::integral_constant<integer, ((1ULL << component_width<_vIdx>::value) - 1) << shift<_vIdx>::value>

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

template<size_t... _vSize>

using ystdex::bitseg_traits< _vSize >::sequence = index_sequence<_vSize...>

自从
  build 728

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

template<size_t... _vSize>
template<size_t _vIdx>

using ystdex::bitseg_traits< _vSize >::shift = decltype(fseq::fold(fseq::plus(), size_t_<0>(), vseq::split_n_t<_vIdx, sequence>()))

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

## 成员函数说明

template<size_t... _vSize>
template<size_t _vIdx>

static component_t<_vIdx> ystdex::bitseg_traits< _vSize >::extract | ( | integer | i | ) |

inlinestatic

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

参考 YSLib::i.

template<size_t... _vSize>
template<size_t _vIdx>

static integer ystdex::bitseg_traits< _vSize >::lift | ( | component_t< _vIdx > | val | ) |

inlinestatic

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

template<size_t... _vSize>
template<typename... _types>

static integer ystdex::bitseg_traits< _vSize >::pack | ( | _types... | xs | ) |

inlinestatic

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

参考 ystdex::bitseg_traits< _vSize >::project().

函数调用图:
template<size_t... _vSize>
template<size_t... _vIdxSeq>

static integer ystdex::bitseg_traits< _vSize >::project | ( | index_sequence< _vIdxSeq... > | ,
|  | component_t< _vIdxSeq >... | xs
| ) |  |

inlinestatic

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

参考 ystdex::fseq::vfold().

参考自 ystdex::bitseg_traits< _vSize >::pack().

函数调用图:

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

## 类成员变量说明

template<size_t... _vSize>

size_t ystdex::bitseg_traits< _vSize >::bits_n

static

初始值:
= fseq::fold(fseq::plus(), size_t_<0>(),
sequence())

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

template<size_t... _vSize>

size_t ystdex::bitseg_traits< _vSize >::bytes_n = (bits_n + CHAR_BIT - 1) / CHAR_BIT

static

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

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

- bitseg.hpp