text: // Copyright David Abrahams 2003.
  // Distributed under the Boost Software License, Version 1.0. (See
  // accompanying file LICENSE_1_0.txt or copy at
  // http://www.boost.org/LICENSE_1_0.txt)
  #ifndef ITERATOR_TRAITS_DWA200347_HPP
  # define ITERATOR_TRAITS_DWA200347_HPP
  
  # include <boost/detail/iterator.hpp>
  # include <boost/detail/workaround.hpp>
  
  namespace geofeatures_boost {} namespace boost = geofeatures_boost; namespace geofeatures_boost {
  namespace iterators {
  
  // Macro for supporting old compilers, no longer needed but kept
  // for backwards compatibility (it was documented).
  #define BOOST_ITERATOR_CATEGORY iterator_category
  
  
  template <class Iterator>
  struct iterator_value
  {
      typedef typename geofeatures_boost::detail::iterator_traits<Iterator>::value_type type;
  };
  
  template <class Iterator>
  struct iterator_reference
  {
      typedef typename geofeatures_boost::detail::iterator_traits<Iterator>::reference type;
  };
  
  
  template <class Iterator>
  struct iterator_pointer
  {
      typedef typename geofeatures_boost::detail::iterator_traits<Iterator>::pointer type;
  };
  
  template <class Iterator>
  struct iterator_difference
  {
      typedef typename geofeatures_boost::detail::iterator_traits<Iterator>::difference_type type;
  };
  
  template <class Iterator>
  struct iterator_category
  {
      typedef typename geofeatures_boost::detail::iterator_traits<Iterator>::iterator_category type;
  };
  
  } // namespace iterators
  
  using iterators::iterator_value;
  using iterators::iterator_reference;
  using iterators::iterator_pointer;
  using iterators::iterator_difference;
  using iterators::iterator_category;
  
  } // namespace geofeatures_boost
  
  #endif // ITERATOR_TRAITS_DWA200347_HPP
  