1 #ifndef _theplu_yat_utility_data_iterator_
2 #define _theplu_yat_utility_data_iterator_
26 #include "iterator_traits.h"
28 #include <boost/concept_check.hpp>
29 #include <boost/iterator/iterator_adaptor.hpp>
30 #include <boost/type_traits/remove_reference.hpp>
61 template<
typename Base>
63 :
public boost::iterator_adaptor<
66 , typename boost::remove_reference<typename iterator_traits<Base>::data_reference>::type
68 , typename iterator_traits<Base>::data_reference
79 BOOST_CONCEPT_ASSERT((boost::InputIterator<Base>));
90 BOOST_CONCEPT_ASSERT((boost::InputIterator<Base>));
100 template<
typename B2>
102 typename boost::enable_if_convertible<B2, Base>::type* = 0 )
123 template<
typename Base>
DataIterator(DataIterator< B2 > other, typename boost::enable_if_convertible< B2, Base >::type *=0)
Conversion constructor.
Definition: DataIterator.h:101
Definition: iterator_traits.h:412
iterator_traits< Base >::data_reference operator*(void) const
Definition: DataIterator.h:110
DataIterator.
Definition: DataIterator.h:62
DataIterator(void)
Default Constructor.
Definition: DataIterator.h:87
traits::data_reference data_reference
Definition: iterator_traits.h:425
DataIterator(Base b)
Constructor from Base iterator.
Definition: DataIterator.h:76
DataIterator< Base > data_iterator(Base base)
convenient function to create DataIterator
Definition: DataIterator.h:124