YSTest: ystdex::bitseg_iterator< _vN, _bEndian > 模板类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 类型 | Public 成员函数 | 静态 Public 属性 | Protected 属性 | 所有成员列表
ystdex::bitseg_iterator< _vN, _bEndian > 模板类 参考
Iterators

位段迭代器。 更多...

`#include <bitseg.hpp>`

类 ystdex::bitseg_iterator< _vN, _bEndian > 继承关系图:
[图例]
ystdex::bitseg_iterator< _vN, _bEndian > 的协作图:
[图例]

## Public 类型

using | iterator_category = std::random_access_iterator_tag
using | value_type = byte
using | difference_type = ptrdiff_t
using | pointer = byte *
using | reference = byte &

## Public 成员函数

| operator pointer () const
size_t | get_shift () const

## 静态 Public 属性

static const bool | lsb = _bEndian
static const unsigned char | seg_n = CHAR_BIT / _vN
static const unsigned char | seg_size = 1 << _vN
static const unsigned char | seg_width = _vN

## Protected 属性

byte * | base
unsigned char | shift
byte | value
| bitseg_iterator (byte *p={}, size_t n=0)
| 构造：使用基指针和偏移位。 更多...
bitseg_iterator & | operator+= (difference_type n)
bitseg_iterator & | operator-= (difference_type n)
reference | operator* () const
bitseg_iterator & | operator++ ()
bitseg_iterator & | operator-- ()
bool | operator== (const bitseg_iterator &x, const bitseg_iterator &y)
bool | operator< (const bitseg_iterator &x, const bitseg_iterator &y)

## 详细描述

### template<size_t _vN, bool _bEndian = false>
class ystdex::bitseg_iterator< _vN, _bEndian >

位段迭代器。

模板参数

  _vN | 段宽度。
  _bEndian | 位序， `ture` 时为小端（ LSB 0 ），否则为大端（ MSB 0 ）。

警告
  非虚析构。

参见
  http://en.wikipedia.org/wiki/Bit_numbering 。

自从
  build 549

待办事项:
  支持 const byte* 实现的迭代器。

对字节分段提供的随机访问迭代器。

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

## 成员类型定义说明

template<size_t _vN, bool _bEndian = false>

using ystdex::bitseg_iterator< _vN, _bEndian >::difference_type = ptrdiff_t

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

template<size_t _vN, bool _bEndian = false>

using ystdex::bitseg_iterator< _vN, _bEndian >::iterator_category = std::random_access_iterator_tag

自从
  build 676

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

template<size_t _vN, bool _bEndian = false>

using ystdex::bitseg_iterator< _vN, _bEndian >::pointer = byte*

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

template<size_t _vN, bool _bEndian = false>

using ystdex::bitseg_iterator< _vN, _bEndian >::reference = byte&

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

template<size_t _vN, bool _bEndian = false>

using ystdex::bitseg_iterator< _vN, _bEndian >::value_type = byte

自从
  build 676

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

## 构造及析构函数说明

template<size_t _vN, bool _bEndian = false>

ystdex::bitseg_iterator< _vN, _bEndian >::bitseg_iterator | ( | byte * | p = `{}`,
|  | size_t | n = `0`
| ) |  |

inline

构造：使用基指针和偏移位。

自从
  build 461

后置条件
  断言： `shift < seg_n` 。

注解
  value 具有未决定值。

自从
  build 549

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

## 成员函数说明

template<size_t _vN, bool _bEndian = false>

size_t ystdex::bitseg_iterator< _vN, _bEndian >::get_shift | ( |  | ) | const

inline

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

参考 ystdex::bitseg_iterator< _vN, _bEndian >::shift.

template<size_t _vN, bool _bEndian = false>

ystdex::bitseg_iterator< _vN, _bEndian >::operator pointer | ( |  | ) | const

inlineexplicit

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

参考 ystdex::bitseg_iterator< _vN, _bEndian >::base.

template<size_t _vN, bool _bEndian = false>

reference ystdex::bitseg_iterator< _vN, _bEndian >::operator* | ( |  | ) | const

inline

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

参考 ystdex::bitseg_iterator< _vN, _bEndian >::shift , 以及 yconstraint.

template<size_t _vN, bool _bEndian = false>

bitseg_iterator& ystdex::bitseg_iterator< _vN, _bEndian >::operator++ | ( |  | ) |

inline

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

参考 yassume, yconstraint , 以及 yunseq.

template<size_t _vN, bool _bEndian = false>

bitseg_iterator& ystdex::bitseg_iterator< _vN, _bEndian >::operator+= | ( | difference_type | n | ) |

inline

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

参考 yassume, yconstraint , 以及 yunseq.

template<size_t _vN, bool _bEndian = false>

bitseg_iterator& ystdex::bitseg_iterator< _vN, _bEndian >::operator-- | ( |  | ) |

inline

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

参考 ystdex::bitseg_iterator< _vN, _bEndian >::shift, yassume, yconstraint , 以及 yunseq.

template<size_t _vN, bool _bEndian = false>

bitseg_iterator& ystdex::bitseg_iterator< _vN, _bEndian >::operator-= | ( | difference_type | n | ) |

inline

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

## 友元及相关函数文档

template<size_t _vN, bool _bEndian = false>

bool operator< | ( | const bitseg_iterator< _vN, _bEndian > & | x,
|  | const bitseg_iterator< _vN, _bEndian > & | y
| ) |  |

friend

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

template<size_t _vN, bool _bEndian = false>

bool operator== | ( | const bitseg_iterator< _vN, _bEndian > & | x,
|  | const bitseg_iterator< _vN, _bEndian > & | y
| ) |  |

friend

自从
  build 600

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

## 类成员变量说明

template<size_t _vN, bool _bEndian = false>

byte* ystdex::bitseg_iterator< _vN, _bEndian >::base

protected

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

参考自 ystdex::bitseg_iterator< _vN, _bEndian >::operator pointer().

template<size_t _vN, bool _bEndian = false>

const bool ystdex::bitseg_iterator< _vN, _bEndian >::lsb = _bEndian

static

自从
  build 549

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

template<size_t _vN, bool _bEndian = false>

const unsigned char ystdex::bitseg_iterator< _vN, _bEndian >::seg_n = CHAR_BIT / _vN

static

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

template<size_t _vN, bool _bEndian = false>

const unsigned char ystdex::bitseg_iterator< _vN, _bEndian >::seg_size = 1 << _vN

static

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

template<size_t _vN, bool _bEndian = false>

const unsigned char ystdex::bitseg_iterator< _vN, _bEndian >::seg_width = _vN

static

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

template<size_t _vN, bool _bEndian = false>

unsigned char ystdex::bitseg_iterator< _vN, _bEndian >::shift

protected

注解
  CHAR_BIT <= UCHAR_MAX 恒成立，因此使用 unsigned char 存储。

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

参考自 ystdex::bitseg_iterator< _vN, _bEndian >::get_shift(), ystdex::bitseg_iterator< _vN, _bEndian >::operator*() , 以及 ystdex::bitseg_iterator< _vN, _bEndian >::operator--().

template<size_t _vN, bool _bEndian = false>

byte ystdex::bitseg_iterator< _vN, _bEndian >::value

mutableprotected

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

该类的文档由以下文件生成:

- bitseg.hpp