|  | Home | Libraries | People | FAQ | More | 
        std::iterator_traits provides access to five
        associated types of any iterator: its value_type,
        reference, pointer, iterator_category,
        and difference_type. Unfortunately,
        such a "multi-valued" traits template can be difficult to use in
        a metaprogramming context. <boost/iterator/iterator_traits.hpp>
        provides access to these types using a standard metafunctions_.
      
        Header <boost/iterator/iterator_traits.hpp>:
      
template <class Iterator> struct iterator_value { typedef typename std::iterator_traits<Iterator>::value_type type; }; template <class Iterator> struct iterator_reference { typedef typename std::iterator_traits<Iterator>::reference type; }; template <class Iterator> struct iterator_pointer { typedef typename std::iterator_traits<Iterator>::pointer type; }; template <class Iterator> struct iterator_difference { typedef typename detail::iterator_traits<Iterator>::difference_type type; }; template <class Iterator> struct iterator_category { typedef typename detail::iterator_traits<Iterator>::iterator_category type; };