From edf17ba001c4705fe53b21b411a19f3c95b96db2 Mon Sep 17 00:00:00 2001 From: Jeremy Siek Date: Thu, 8 Feb 2001 03:41:23 +0000 Subject: [PATCH] put indirect_iterator_pair_generator back in [SVN r9027] --- include/boost/iterator_adaptors.hpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/include/boost/iterator_adaptors.hpp b/include/boost/iterator_adaptors.hpp index 3ab25fb..71c5759 100644 --- a/include/boost/iterator_adaptors.hpp +++ b/include/boost/iterator_adaptors.hpp @@ -13,8 +13,7 @@ // Revision History: // 07 Feb 2001 Jeremy Siek -// Removed all pair generator's except for projection and -// some const adaptor generators. +// Removed some const iterator adaptor generators. // // Added make_xxx_iterator() helper functions for remaining // iterator adaptors. @@ -335,7 +334,7 @@ namespace detail { typedef operator_arrow_proxy proxy; typedef typename Traits::pointer pointer; enum { is_input_iter = boost::is_convertible::value - & !boost::is_convertible::value }; + & !boost::is_convertible::value }; typedef typename boost::detail::if_true<(is_input_iter)>::template then< proxy, @@ -648,6 +647,20 @@ public: typedef iterator_adaptor type; }; +template , + class InnerIterator = typename boost::detail::iterator_traits::value_type, + class InnerTraits = boost::detail::iterator_traits + > +struct indirect_iterator_pair_generator +{ + typedef typename indirect_iterator_generator::type iterator; + typedef typename indirect_iterator_generator::type const_iterator; +}; + template inline typename indirect_iterator_generator::type make_indirect_iterator(OuterIterator outer, InnerIterator, InnerTraits) @@ -830,8 +843,8 @@ private: }; template - > + class Traits = boost::detail::iterator_traits + > class filter_iterator_generator { typedef filter_iterator_policies Policies; public: