YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
iterator.hpp 文件参考

通用迭代器。 更多...

#include "type_op.hpp"
#include "cassert.h"
#include <iterator>
#include <utility>
#include <memory>
iterator.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

class  ystdex::pointer_iterator< _type >
 指针迭代器。 更多...
 
struct  ystdex::pointer_classify< _type >
 指针包装为类类型迭代器。 更多...
 
struct  ystdex::pointer_classify< _type * >
 
class  ystdex::pseudo_iterator< _type, _tIterator, _tTraits >
 伪迭代器。 更多...
 
class  ystdex::transformed_iterator< _tIterator, _fTransformer >
 转换迭代器。 更多...
 
struct  ystdex::indirect_tag
 
class  ystdex::pair_iterator< _tMaster, _tSlave, _tTraits >
 成对迭代器。 更多...
 
class  ystdex::indirect_input_iterator< _tIterator >
 间接输入迭代器。 更多...
 
class  ystdex::bitseg_iterator< _vN, _bEndian >
 位段迭代器。 更多...
 
class  ystdex::subscriptive_iterator< _tCon, _type >
 成员下标迭代器。 更多...
 

命名空间

 ystdex
 
 ystdex::iterator_transformation
 迭代转换操作。
 

类型定义

template<typename _tParam , typename = std::pair< decltype(*std::declval<_tParam&>()), decltype(++std::declval<_tParam&>())>>
using ystdex::enable_for_iterator_t = enable_if_t< is_same< decltype(++std::declval< _tParam & >()), _tParam & >::value, int >
 选择迭代器类型的特定重载避免和其它类型冲突。 更多...
 

函数

template<typename _tIterator >
bool ystdex::is_undereferenceable (const _tIterator &)
 
template<typename _type >
bool ystdex::is_undereferenceable (_type *p)
 
template<typename _tIterator1 , typename _tIterator2 >
auto ystdex::make_move_iterator_pair (_tIterator1 it1, _tIterator2 it2) -> decltype(std::make_pair(std::make_move_iterator(it1), std::make_move_iterator(it2)))
 取转移迭代器对。 更多...
 
template<typename _tRange >
auto ystdex::make_move_iterator_pair (_tRange &c) -> decltype(ystdex::make_move_iterator_pair(begin(c), end(c)))
 取指定序列范围(包含序列容器及内建数组等)的转移迭代器对。 更多...
 
template<typename _tIterator >
auto ystdex::operator| (_tIterator &&i, first_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::first< typename array_ref_decay< _tIterator >::type >))
 管道匹配操作符。 更多...
 
template<typename _tIterator >
auto ystdex::operator| (_tIterator &&i, second_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::second< typename array_ref_decay< _tIterator >::type >))
 
template<typename _tIterator >
auto ystdex::operator| (_tIterator &&i, indirect_tag) -> decltype(make_transform(std::forward< decltype(i)>(i), iterator_transformation::indirect< typename array_ref_decay< _tIterator >::type >))
 
template<typename _tIn , typename _fPred >
_tIn ystdex::next_if (_tIn i, _fPred f, typename std::iterator_traits< _tIn >::difference_type n=1)
 迭代器指向的值满足条件时取邻接迭代器,否则取原值。 更多...
 
template<typename _tIn , typename _type >
_tIn ystdex::next_if_eq (_tIn i, const _type &val, typename std::iterator_traits< _tIn >::difference_type n=1)
 
template<typename _tBi , typename _fPred >
_tBi ystdex::prev_if (_tBi i, _fPred f, typename std::iterator_traits< _tBi >::difference_type n=1)
 迭代器指向的值满足条件时取反向邻接迭代器,否则取原值。 更多...
 
template<typename _tBi , typename _type >
_tBi ystdex::prev_if_eq (_tBi i, const _type &val, typename std::iterator_traits< _tBi >::difference_type n=1)
 
template<typename _tIterator >
static auto ystdex::iterator_transformation::first (const _tIterator &i) -> decltype((i->first))
 
template<typename _tIterator >
static auto ystdex::iterator_transformation::second (const _tIterator &i) -> decltype((i->second))
 
template<typename _tIterator >
static auto ystdex::iterator_transformation::indirect (const _tIterator &i) -> decltype((**i))
 

变量

const first_tag ystdex::get_first {}
 操纵子。 更多...
 
const first_tag ystdex::get_key {}
 
const second_tag ystdex::get_second {}
 
const second_tag ystdex::get_value {}
 
const struct ystdex::indirect_tag ystdex::get_indirect
 

详细描述

通用迭代器。

版本
r3207
作者
FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com
自从
早于 build 189
创建时间:
2011-01-27 23:01:00 +0800
修改时间:
2014-05-23 10:05 +0800
文本编码:
UTF-8
模块名称:
YStandardEx::Iterator

在文件 iterator.hpp 中定义.