Silicium
Public Types | Public Member Functions | List of all members
Si::iterator_range< Iterator > Struct Template Reference

#include <iterator_range.hpp>

Public Types

typedef std::iterator_traits< Iterator >::difference_type difference_type
 
typedef detail::actual_value_type< Iterator >::type value_type
 
typedef Iterator iterator
 
typedef Iterator const_iterator
 

Public Member Functions

BOOST_CONSTEXPR iterator_range () BOOST_NOEXCEPT
 
template<class It1 , class It2 >
BOOST_CONSTEXPR iterator_range (It1 &&begin, It2 &&end) BOOST_NOEXCEPT
 
template<class OtherIterator >
 iterator_range (iterator_range< OtherIterator > const &other) BOOST_NOEXCEPT
 
template<class OtherIterator >
iterator_rangeoperator= (iterator_range< OtherIterator > const &other) BOOST_NOEXCEPT
 
BOOST_CONSTEXPR Iterator const & begin () const BOOST_NOEXCEPT
 
BOOST_CONSTEXPR Iterator const & end () const BOOST_NOEXCEPT
 
BOOST_CONSTEXPR bool empty () const BOOST_NOEXCEPT
 
BOOST_CONSTEXPR difference_type size () const BOOST_NOEXCEPT
 
SILICIUM_CXX14_CONSTEXPR void pop_front (difference_type n) BOOST_NOEXCEPT
 
SILICIUM_CXX14_CONSTEXPR void pop_front () BOOST_NOEXCEPT
 
value_typefront () const BOOST_NOEXCEPT
 
value_typeoperator[] (difference_type index) const BOOST_NOEXCEPT
 This method is only available with random access iterators so that it takes O(1) in time. More...
 

Member Typedef Documentation

template<class Iterator>
typedef Iterator Si::iterator_range< Iterator >::const_iterator
template<class Iterator>
typedef std::iterator_traits<Iterator>::difference_type Si::iterator_range< Iterator >::difference_type
template<class Iterator>
typedef Iterator Si::iterator_range< Iterator >::iterator
template<class Iterator>
typedef detail::actual_value_type<Iterator>::type Si::iterator_range< Iterator >::value_type

Constructor & Destructor Documentation

template<class Iterator>
BOOST_CONSTEXPR Si::iterator_range< Iterator >::iterator_range ( )
inline
template<class Iterator>
template<class It1 , class It2 >
BOOST_CONSTEXPR Si::iterator_range< Iterator >::iterator_range ( It1 &&  begin,
It2 &&  end 
)
inline
template<class Iterator>
template<class OtherIterator >
Si::iterator_range< Iterator >::iterator_range ( iterator_range< OtherIterator > const &  other)
inline

Member Function Documentation

template<class Iterator>
BOOST_CONSTEXPR Iterator const& Si::iterator_range< Iterator >::begin ( ) const
inline
template<class Iterator>
BOOST_CONSTEXPR bool Si::iterator_range< Iterator >::empty ( ) const
inline
template<class Iterator>
BOOST_CONSTEXPR Iterator const& Si::iterator_range< Iterator >::end ( ) const
inline
template<class Iterator>
value_type& Si::iterator_range< Iterator >::front ( ) const
inline
template<class Iterator>
template<class OtherIterator >
iterator_range& Si::iterator_range< Iterator >::operator= ( iterator_range< OtherIterator > const &  other)
inline
template<class Iterator>
value_type& Si::iterator_range< Iterator >::operator[] ( difference_type  index) const
inline

This method is only available with random access iterators so that it takes O(1) in time.

template<class Iterator>
SILICIUM_CXX14_CONSTEXPR void Si::iterator_range< Iterator >::pop_front ( difference_type  n)
inline

This method is only available with random access iterators. If you need this for weaker iterators, use a loop that calls pop_front() for individual elements.

template<class Iterator>
SILICIUM_CXX14_CONSTEXPR void Si::iterator_range< Iterator >::pop_front ( )
inline
template<class Iterator>
BOOST_CONSTEXPR difference_type Si::iterator_range< Iterator >::size ( ) const
inline

This method is only available with random access iterators. Use std::distance(begin(r), end(r)) if you really want a potential O(n) operation.


The documentation for this struct was generated from the following file: