YSTest: ystdex::transformed_iterator< _tIterator, _fTransformer > 模板类 参考

YSTest PreAlpha_b500_20140530 The YSLib Test Project

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

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

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
Public 类型 | Public 成员函数 | Protected 属性 | 相关函数 | 所有成员列表
ystdex::transformed_iterator< _tIterator, _fTransformer > 模板类 参考
Iterator Adaptors

转换迭代器。 更多...

`#include <iterator.hpp>`

类 ystdex::transformed_iterator< _tIterator, _fTransformer > 继承关系图:
[图例]
ystdex::transformed_iterator< _tIterator, _fTransformer > 的协作图:
[图例]

## Public 类型

using | iterator_type = typename pointer_classify< remove_reference_t< _tIterator >>::type
| 原迭代器类型。 更多...
using | transformer_type = decay_t< _fTransformer >
using | transformed_type = result_of_t< _fTransformer &(_tIterator &)>
using | difference_type = typename pointer_classify< _tIterator >::type::difference_type
using | reference = decltype(std::declval< transformed_type >())

## Public 成员函数

| transformed_iterator ()=default
template<typename _tIter , typename _tTran , typename = exclude_self_ctor_t<transformed_iterator, _tIter>>
| transformed_iterator (_tIter &&i, _tTran f={})
reference | operator* () const
template<typename _tDiff >
enable_if_t< is_convertible < decltype(std::declval < iterator_type & >)[_tDiff()]), reference >::value, reference > | operator[] (_tDiff n)
| operator iterator_type & ()
| 转换为原迭代器引用。 更多...
| operator const iterator_type & () const
| 转换为原迭代器 const 引用。 更多...
iterator_type & | get ()
| 取原迭代器引用。 更多...
const iterator_type & | get () const
| 取原迭代器 const 引用。 更多...
| transformed_iterator (const transformed_iterator &)=default
| transformed_iterator (transformed_iterator &&)=default
transformer_type & | get_transformer ()
const transformer_type & | get_transformer () const

## Protected 属性

transformer_type | transformer

## 相关函数

(请注意: 这些不是成员函数.)
template<typename _tIterator , typename _fTransformer >
transformed_iterator< typename array_ref_decay< _tIterator > ::type, _fTransformer > | make_transform (_tIterator &&i, _fTransformer f)
| 创建转换迭代器。 更多...
template<typename _type , typename _fTransformer >
bool | operator== (const transformed_iterator< _type, _fTransformer > &x, const transformed_iterator< _type, _fTransformer > &y)
| 满足输入迭代器要求。 更多...
template<typename _type , typename _fTransformer >
transformed_iterator< _type, _fTransformer > & | operator+= (transformed_iterator< _type, _fTransformer > &i, typename transformed_iterator< _type, _fTransformer >::difference_type n)
| 满足随机迭代器要求。 更多...

## 详细描述

### template<typename _tIterator, typename _fTransformer>
class ystdex::transformed_iterator< _tIterator, _fTransformer >

转换迭代器。

前置条件
  转换器必须满足 DefaultConstructible ，否则不保证可默认构造。

注解
  对于返回新值的二元操作，复制的转换器基于第一操作数。

警告
  非虚析构。

自从
  build 288

使用指定参数转换得到新迭代器的间接操作替代指定原始类型的间接操作的迭代器适配器。 被替代的原始类型是迭代器类型，或除间接操作（可以不存在）外符合迭代器要求的类型。

在文件 iterator.hpp 第 514 行定义.

## 成员类型定义说明

template<typename _tIterator, typename _fTransformer>

using ystdex::transformed_iterator< _tIterator, _fTransformer >::difference_type = typename pointer_classify<_tIterator>::type::difference_type

自从
  build 415

在文件 iterator.hpp 第 528 行定义.

template<typename _tIterator, typename _fTransformer>

using ystdex::transformed_iterator< _tIterator, _fTransformer >::iterator_type = typename pointer_classify<remove_reference_t<_tIterator>>::type

原迭代器类型。

自从
  build 290

在文件 iterator.hpp 第 522 行定义.

template<typename _tIterator, typename _fTransformer>

using ystdex::transformed_iterator< _tIterator, _fTransformer >::reference = decltype(std::declval<transformed_type>())

自从
  build 357

在文件 iterator.hpp 第 530 行定义.

template<typename _tIterator, typename _fTransformer>

using ystdex::transformed_iterator< _tIterator, _fTransformer >::transformed_type = result_of_t<_fTransformer&(_tIterator&)>

自从
  build 439

在文件 iterator.hpp 第 525 行定义.

template<typename _tIterator, typename _fTransformer>

using ystdex::transformed_iterator< _tIterator, _fTransformer >::transformer_type = decay_t<_fTransformer>

在文件 iterator.hpp 第 523 行定义.

## 构造及析构函数说明

template<typename _tIterator, typename _fTransformer>

ystdex::transformed_iterator< _tIterator, _fTransformer >::transformed_iterator | ( |  | ) |

default

自从
  build 496

template<typename _tIterator, typename _fTransformer>
template<typename _tIter , typename _tTran , typename = exclude_self_ctor_t<transformed_iterator, _tIter>>

ystdex::transformed_iterator< _tIterator, _fTransformer >::transformed_iterator | ( | _tIter && | i,
|  | _tTran | f = `{}`
| ) |  |

inlineexplicit

自从
  build 494

在文件 iterator.hpp 第 543 行定义.

template<typename _tIterator, typename _fTransformer>

ystdex::transformed_iterator< _tIterator, _fTransformer >::transformed_iterator | ( | const transformed_iterator< _tIterator, _fTransformer > & |  | ) |

default

自从
  build 415

template<typename _tIterator, typename _fTransformer>

ystdex::transformed_iterator< _tIterator, _fTransformer >::transformed_iterator | ( | transformed_iterator< _tIterator, _fTransformer > && |  | ) |

default

## 成员函数说明

template<typename _tIterator, typename _fTransformer>

iterator_type& ystdex::transformed_iterator< _tIterator, _fTransformer >::get | ( |  | ) |

inline

取原迭代器引用。

自从
  build 290

在文件 iterator.hpp 第 593 行定义.

参考自 ystdex::transformed_iterator< _tIterator, _fTransformer >::operator+=() , 以及 ystdex::transformed_iterator< _tIterator, _fTransformer >::operator==().

这是这个函数的调用关系图:
template<typename _tIterator, typename _fTransformer>

const iterator_type& ystdex::transformed_iterator< _tIterator, _fTransformer >::get | ( |  | ) | const

inline

取原迭代器 const 引用。

自从
  build 290

在文件 iterator.hpp 第 603 行定义.

template<typename _tIterator, typename _fTransformer>

transformer_type& ystdex::transformed_iterator< _tIterator, _fTransformer >::get_transformer | ( |  | ) |

inline

自从
  build 412

在文件 iterator.hpp 第 611 行定义.

参考 ystdex::transformed_iterator< _tIterator, _fTransformer >::transformer.

template<typename _tIterator, typename _fTransformer>

const transformer_type& ystdex::transformed_iterator< _tIterator, _fTransformer >::get_transformer | ( |  | ) | const

inline

在文件 iterator.hpp 第 616 行定义.

参考 ystdex::transformed_iterator< _tIterator, _fTransformer >::transformer.

template<typename _tIterator, typename _fTransformer>

ystdex::transformed_iterator< _tIterator, _fTransformer >::operator const iterator_type & | ( |  | ) | const

inline

转换为原迭代器 const 引用。

自从
  build 290

在文件 iterator.hpp 第 583 行定义.

template<typename _tIterator, typename _fTransformer>

ystdex::transformed_iterator< _tIterator, _fTransformer >::operator iterator_type & | ( |  | ) |

inline

转换为原迭代器引用。

自从
  build 290

在文件 iterator.hpp 第 573 行定义.

template<typename _tIterator, typename _fTransformer>

reference ystdex::transformed_iterator< _tIterator, _fTransformer >::operator* | ( |  | ) | const

inline

自从
  build 357

在文件 iterator.hpp 第 554 行定义.

参考 ystdex::transformed_iterator< _tIterator, _fTransformer >::transformer , 以及 yforward.

template<typename _tIterator, typename _fTransformer>
template<typename _tDiff >

enable_if_t<is_convertible<decltype( std::declval<iterator_type&>)[_tDiff()]), reference>::value, reference> ystdex::transformed_iterator< _tIterator, _fTransformer >::operator[] | ( | _tDiff | n | ) |

inline

自从
  build 496

在文件 iterator.hpp 第 563 行定义.

## 友元及相关函数文档

template<typename _type , typename _fTransformer >

transformed_iterator< _type, _fTransformer > & operator+= | ( | transformed_iterator< _type, _fTransformer > & | i,
|  | typename transformed_iterator< _type, _fTransformer >::difference_type | n
| ) |  |

related

满足随机迭代器要求。

自从
  build 496

在文件 iterator.hpp 第 654 行定义.

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

函数调用图:
template<typename _type , typename _fTransformer >

bool operator== | ( | const transformed_iterator< _type, _fTransformer > & | x,
|  | const transformed_iterator< _type, _fTransformer > & | y
| ) |  |

related

满足输入迭代器要求。

自从
  build 356

在文件 iterator.hpp 第 631 行定义.

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

函数调用图:

## 类成员变量说明

template<typename _tIterator, typename _fTransformer>

transformer_type ystdex::transformed_iterator< _tIterator, _fTransformer >::transformer

mutableprotected

注解
  当为空类时作为第一个成员可启用空基类优化。

在文件 iterator.hpp 第 534 行定义.

参考自 ystdex::transformed_iterator< _tIterator, _fTransformer >::get_transformer() , 以及 ystdex::transformed_iterator< _tIterator, _fTransformer >::operator*().

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

- iterator.hpp