YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
ystdex::transformed_iterator< _tIterator, _fTransformer > 模板类 参考

转换迭代器。 更多...

#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_typeget ()
 取原迭代器引用。 更多...
 
const iterator_typeget () const
 取原迭代器 const 引用。 更多...
 
 transformed_iterator (const transformed_iterator &)=default
 
 transformed_iterator (transformed_iterator &&)=default
 
transformer_typeget_transformer ()
 
const transformer_typeget_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.hpp514 行定义.

成员类型定义说明

template<typename _tIterator, typename _fTransformer>
using ystdex::transformed_iterator< _tIterator, _fTransformer >::difference_type = typename pointer_classify<_tIterator>::type::difference_type
自从
build 415

在文件 iterator.hpp528 行定义.

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

原迭代器类型。

自从
build 290

在文件 iterator.hpp522 行定义.

template<typename _tIterator, typename _fTransformer>
using ystdex::transformed_iterator< _tIterator, _fTransformer >::reference = decltype(std::declval<transformed_type>())
自从
build 357

在文件 iterator.hpp530 行定义.

template<typename _tIterator, typename _fTransformer>
using ystdex::transformed_iterator< _tIterator, _fTransformer >::transformed_type = result_of_t<_fTransformer&(_tIterator&)>
自从
build 439

在文件 iterator.hpp525 行定义.

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

在文件 iterator.hpp523 行定义.

构造及析构函数说明

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.hpp543 行定义.

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.hpp593 行定义.

参考自 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.hpp603 行定义.

template<typename _tIterator, typename _fTransformer>
transformer_type& ystdex::transformed_iterator< _tIterator, _fTransformer >::get_transformer ( )
inline
template<typename _tIterator, typename _fTransformer>
const transformer_type& ystdex::transformed_iterator< _tIterator, _fTransformer >::get_transformer ( ) const
inline
template<typename _tIterator, typename _fTransformer>
ystdex::transformed_iterator< _tIterator, _fTransformer >::operator const iterator_type & ( ) const
inline

转换为原迭代器 const 引用。

自从
build 290

在文件 iterator.hpp583 行定义.

template<typename _tIterator, typename _fTransformer>
ystdex::transformed_iterator< _tIterator, _fTransformer >::operator iterator_type & ( )
inline

转换为原迭代器引用。

自从
build 290

在文件 iterator.hpp573 行定义.

template<typename _tIterator, typename _fTransformer>
reference ystdex::transformed_iterator< _tIterator, _fTransformer >::operator* ( ) const
inline
自从
build 357

在文件 iterator.hpp554 行定义.

参考 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.hpp563 行定义.

友元及相关函数文档

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.hpp654 行定义.

参考 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.hpp631 行定义.

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

函数调用图:

类成员变量说明

template<typename _tIterator, typename _fTransformer>
transformer_type ystdex::transformed_iterator< _tIterator, _fTransformer >::transformer
mutableprotected
注解
当为空类时作为第一个成员可启用空基类优化。

在文件 iterator.hpp534 行定义.

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


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