Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Namespaces | Functions
iterator.hpp File Reference
#include <iterator>
#include <functional>
Include dependency graph for iterator.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  ext::set_move_iterator< Iterator >
 Adaptor iterator to allow values to be moved from a set. Internaly calls const cast to dereference result of underlying set iterator. More...
 
class  ext::map_move_iterator< Iterator, KeyType, ValueType >
 Adaptor iterator to allow values to be moved from a map. Internaly calls reinterpret cast to dereference result of underlying map iterator. More...
 
class  ext::value_mover< T >
 Adaptor class to change begin and end behavior for rvalue qualified begin and end. This class takes ownership of the adapted instance by move construction. More...
 
class  ext::reference_mover< T >
 Adaptor class to change begin and end behavior for rvalue qualified begin and end. This class keeps rvalue reference of the adapted instance. More...
 
class  ext::reverser< T >
 Adaptor class to change begin and end behavior for reverse begin and reverse end and vise versa. More...
 
class  ext::dereferencing_iterator< Iterator >
 Adaptor iterator to additionally call second dereference on the iterator dereference result. More...
 
class  ext::callback_iterator< T >
 Output iterator calling a callback function on assignment. More...
 
class  ext::key_iterator< map_type >
 
class  ext::value_iterator< map_type >
 

Namespaces

namespace  ext
 

Functions

template<class Iterator >
set_move_iterator< Iterator > ext::make_set_move_iterator (Iterator it)
 Move from set iterator adaptor construction function. More...
 
template<class T , class R , class Iterator >
map_move_iterator< Iterator, T, R > ext::make_map_move_iterator (Iterator it)
 Move from map iterator adaptor construction function. More...
 
template<class T >
reference_mover< T > ext::make_mover (T &param)
 Move adaptor construction function specialized to lvalue reference parameter. More...
 
template<class T >
value_mover< T > ext::make_mover (T &&param)
 Move adaptor construction function specialized to rvalue reference paramter. More...
 
template<class T >
reverser< T > ext::make_reverse (T &&container)
 Reverese adaptor construction function. More...
 
template<class Iterator >
dereferencing_iterator< Iterator > ext::dereferencer (Iterator iter)
 Dereferencing adaptor construction function. More...
 
template<typename InputIterator , typename Distance >
constexpr void ext::retractInternal (InputIterator &i, Distance n, std::input_iterator_tag)
 Implementation of retract function specific to input iterators. More...
 
template<typename BidirectionalIterator , typename Distance >
constexpr void ext::retractInternal (BidirectionalIterator &i, Distance n, std::bidirectional_iterator_tag)
 Implementation of retract function specific to bidrectional iterators. More...
 
template<typename RandomAccessIterator , typename Distance >
constexpr void ext::retractInternal (RandomAccessIterator &i, Distance n, std::random_access_iterator_tag)
 Implementation of retract function specific to random access iterators. More...
 
template<typename Iterator , typename Distance >
constexpr void ext::retract (Iterator &i, Distance n)
 A generalization of pointer arithmetic. More...
 
template<class Container >
auto ext::begin (Container &&cont) -> decltype(std::forward(cont).begin())
 
template<class Container >
auto ext::end (Container &&cont) -> decltype(std::forward(cont).end())
 
template<class T >
callback_iterator< T > ext::make_callback_iterator (T callback)
 
template<typename map_type >
key_iterator< map_type > ext::key_begin (const map_type &m)
 
template<typename map_type >
key_iterator< map_type > ext::key_end (const map_type &m)
 
template<typename map_type >
value_iterator< map_type > ext::value_begin (const map_type &m)
 
template<typename map_type >
value_iterator< map_type > ext::value_end (const map_type &m)