YSTest: ystdex::transformed_iterator< _tIter, _fTrans, _tReference > 模板类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 类型 | Public 成员函数 | Protected 属性 | Private 类型 | Private 属性 | 友元 | 相关函数 | 所有成员列表
ystdex::transformed_iterator< _tIter, _fTrans, _tReference > 模板类 参考
Iterators » Iterator Adaptors

变换迭代器。 更多...

`#include <iterator.hpp>`

类 ystdex::transformed_iterator< _tIter, _fTrans, _tReference > 继承关系图:
[图例]
ystdex::transformed_iterator< _tIter, _fTrans, _tReference > 的协作图:
[图例]

## Public 类型

using | iterator_type = typename impl_traits::iterator_type
| 原迭代器类型。 更多...
using | transformer_type = _fTrans
using | transformed_type = typename impl_traits::transformed_type
using | difference_type = typename impl_traits::difference_type
using | pointer = typename impl_traits::pointer
using | reference = typename impl_traits::reference
using | iterator_category = typename impl_traits::iterator_category
using | value_type = typename impl_traits::transformed_type

## Public 成员函数

| transformed_iterator ()=default
template<typename _tIter2 , typename = exclude_self_t<transformed_iterator, _tIter2>, typename = enable_if_convertible_t<_tIter2&&, iterator_type>>
| transformed_iterator (_tIter2 &&i)
template<typename _tIter2 , typename _fTrans2 = _fTrans, typename = exclude_self_t<transformed_iterator, _tIter2>>
| transformed_iterator (_tIter2 &&i, _fTrans2 f)
template<typename _tIter2 , typename _fTrans2 , typename _tRef2 , typename = enable_if_t<and_<not_<is_convertible<const transformed_iterator<_tIter2, _fTrans2, _tRef2>&, iterator_type>>, is_constructible<_tIter, const _tIter2&>, is_constructible<_fTrans, const _fTrans2&>>::value>>
| transformed_iterator (const transformed_iterator< _tIter2, _fTrans2, _tRef2 > &i)
template<typename _tIter2 , typename _fTrans2 , typename _tRef2 , typename = enable_if_t<and_<not_<is_convertible< transformed_iterator<_tIter2, _fTrans2, _tRef2>&&, iterator_type>>, is_constructible<_tIter, _tIter2&&>, is_constructible<_fTrans, _fTrans2&&>>::value>>
| transformed_iterator (transformed_iterator< _tIter2, _fTrans2, _tRef2 > &&i)
transformed_iterator & | operator= (const transformed_iterator &)=default
transformed_iterator & | operator= (transformed_iterator &&)=default
reference | operator* () const
transformed_iterator & | operator++ ()
transformed_iterator & | operator-- ()
| transformed_iterator (const transformed_iterator &)=default
| transformed_iterator (transformed_iterator &&)=default
iterator_type & | get ()
| 取原迭代器引用。 更多...
const iterator_type & | get () const
| 取原迭代器 const 引用。 更多...
transformer_type & | get_transformer ()
const transformer_type & | get_transformer () const

## Protected 属性

transformer_type | transformer

## Private 类型

using | impl_traits = details::transit_traits< _tIter, _fTrans, _tReference >

## Private 属性

iterator_type | transformed

## 友元

template<typename , typename , typename >
class | transformed_iterator
transformed_iterator & | operator+= (transformed_iterator &i, difference_type n)
transformed_iterator & | operator-= (transformed_iterator &i, difference_type n)
template<typename = void>
bool | operator== (const transformed_iterator &x, const transformed_iterator &y)
template<typename = void>
bool | operator== (const transformed_iterator &x, const iterator_type &y)
template<typename = void>
bool | operator< (const transformed_iterator &x, const transformed_iterator &y)
template<typename = void>
bool | operator< (const transformed_iterator &x, const iterator_type &y)
template<typename = void>
difference_type | operator- (const transformed_iterator &x, const transformed_iterator &y)
template<typename = void>
difference_type | operator- (const transformed_iterator &x, const iterator_type &y)
template<typename = void>
difference_type | operator- (const iterator_type &x, const transformed_iterator &y)

## 相关函数

(请注意: 这些不是成员函数.)
template<typename _tIter , typename _fTrans >
transformed_iterator< decay_t< _tIter >, _fTrans > | make_transform (_tIter &&i, _fTrans f)
| 创建变换迭代器。 更多...

## 详细描述

### template<typename _tIter, typename _fTrans, typename _tReference = void>
class ystdex::transformed_iterator< _tIter, _fTrans, _tReference >

变换迭代器。

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

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

警告
  非虚析构。

自从
  build 532

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

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

## 成员类型定义说明

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::difference_type = typename impl_traits::difference_type

自从
  build 415

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::impl_traits = details::transit_traits<_tIter, _fTrans, _tReference>

private

自从
  build 576

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::iterator_category = typename impl_traits::iterator_category

自从
  build 667

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::iterator_type = typename impl_traits::iterator_type

原迭代器类型。

自从
  build 290

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::pointer = typename impl_traits::pointer

自从
  build 667

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::reference = typename impl_traits::reference

注解
  仅当参数 _tReference 为引用时可符合 ISO C++ 对 ForwardIterator 的要求。

自从
  build 357

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_type = typename impl_traits::transformed_type

自从
  build 439

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformer_type = _fTrans

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

using ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::value_type = typename impl_traits::transformed_type

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

## 构造及析构函数说明

template<typename _tIter, typename _fTrans, typename _tReference = void>

ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_iterator | ( |  | ) |

default

自从
  build 496

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename _tIter2 , typename = exclude_self_t<transformed_iterator, _tIter2>, typename = enable_if_convertible_t<_tIter2&&, iterator_type>>

ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_iterator | ( | _tIter2 && | i | ) |

inlineexplicit

自从
  build 679

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename _tIter2 , typename _fTrans2 = _fTrans, typename = exclude_self_t<transformed_iterator, _tIter2>>

ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_iterator | ( | _tIter2 && | i,
|  | _fTrans2 | f
| ) |  |

inlineexplicit

自从
  build 678

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename _tIter2 , typename _fTrans2 , typename _tRef2 , typename = enable_if_t<and_<not_<is_convertible<const transformed_iterator<_tIter2, _fTrans2, _tRef2>&, iterator_type>>, is_constructible<_tIter, const _tIter2&>, is_constructible<_fTrans, const _fTrans2&>>::value>>

ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_iterator | ( | const transformed_iterator< _tIter2, _fTrans2, _tRef2 > & | i | ) |

inline

自从
  build 665

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename _tIter2 , typename _fTrans2 , typename _tRef2 , typename = enable_if_t<and_<not_<is_convertible< transformed_iterator<_tIter2, _fTrans2, _tRef2>&&, iterator_type>>, is_constructible<_tIter, _tIter2&&>, is_constructible<_fTrans, _fTrans2&&>>::value>>

ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_iterator | ( | transformed_iterator< _tIter2, _fTrans2, _tRef2 > && | i | ) |

inline

自从
  build 665

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_iterator | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & |  | ) |

default

自从
  build 415

template<typename _tIter, typename _fTrans, typename _tReference = void>

ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed_iterator | ( | transformed_iterator< _tIter, _fTrans, _tReference > && |  | ) |

default

## 成员函数说明

template<typename _tIter, typename _fTrans, typename _tReference = void>

iterator_type& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::get | ( |  | ) |

inline

取原迭代器引用。

自从
  build 585

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

参考 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed.

参考自 ystdex::mapped_set< _type, _fComp, _tAlloc >::erase() , 以及 ystdex::mapped_set< _type, _fComp, _tAlloc >::insert().

这是这个函数的调用关系图:
template<typename _tIter, typename _fTrans, typename _tReference = void>

const iterator_type& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::get | ( |  | ) | const

inline

取原迭代器 const 引用。

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

参考 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed.

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformer_type& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::get_transformer | ( |  | ) |

inline

自从
  build 412

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

参考 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformer.

template<typename _tIter, typename _fTrans, typename _tReference = void>

const transformer_type& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::get_transformer | ( |  | ) | const

inline

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

参考 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformer.

template<typename _tIter, typename _fTrans, typename _tReference = void>

reference ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::operator* | ( |  | ) | const

inline

自从
  build 585

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

参考 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformer.

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformed_iterator& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::operator++ | ( |  | ) |

inline

自从
  build 665

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformed_iterator& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::operator-- | ( |  | ) |

inline

自从
  build 665

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformed_iterator& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::operator= | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & |  | ) |

default

自从
  build 529

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformed_iterator& ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::operator= | ( | transformed_iterator< _tIter, _fTrans, _tReference > && |  | ) |

default

自从
  build 529

## 友元及相关函数文档

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformed_iterator& operator+= | ( | transformed_iterator< _tIter, _fTrans, _tReference > & | i,
|  | difference_type | n
| ) |  |

friend

自从
  build 600

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename = void>

difference_type operator- | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & | x,
|  | const transformed_iterator< _tIter, _fTrans, _tReference > & | y
| ) |  |

friend

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename = void>

difference_type operator- | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & | x,
|  | const iterator_type & | y
| ) |  |

friend

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename = void>

difference_type operator- | ( | const iterator_type & | x,
|  | const transformed_iterator< _tIter, _fTrans, _tReference > & | y
| ) |  |

friend

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

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformed_iterator& operator-= | ( | transformed_iterator< _tIter, _fTrans, _tReference > & | i,
|  | difference_type | n
| ) |  |

friend

自从
  build 600

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename = void>

bool operator< | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & | x,
|  | const transformed_iterator< _tIter, _fTrans, _tReference > & | y
| ) |  |

friend

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename = void>

bool operator< | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & | x,
|  | const iterator_type & | y
| ) |  |

friend

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename = void>

bool operator== | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & | x,
|  | const transformed_iterator< _tIter, _fTrans, _tReference > & | y
| ) |  |

friend

自从
  build 685

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename = void>

bool operator== | ( | const transformed_iterator< _tIter, _fTrans, _tReference > & | x,
|  | const iterator_type & | y
| ) |  |

friend

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

template<typename _tIter, typename _fTrans, typename _tReference = void>
template<typename , typename , typename >

friend class transformed_iterator

friend

自从
  build 529
  build 529
  build 665

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

## 类成员变量说明

template<typename _tIter, typename _fTrans, typename _tReference = void>

iterator_type ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformed

private

自从
  build 667

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

参考自 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::get().

template<typename _tIter, typename _fTrans, typename _tReference = void>

transformer_type ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::transformer

mutableprotected

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

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

参考自 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::get_transformer() , 以及 ystdex::transformed_iterator< _tIter, _fTrans, _tReference >::operator*().

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

- iterator.hpp