$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Alexander Belopolsky (belopols_at_[hidden])
Date: 2001-07-10 14:50:44
--- In boost_at_y..., "David Abrahams" <david.abrahams_at_r...> wrote:
> I'm afraid it's not the right approach. The value_type of a constant
> iterator to T should just be T, not const T. You need to arrange for
T
> const* and T const& pointer and reference parameters, respectively.
>
>
Thanks, Dave.
Here is an alternative fix:
> cvs diff iterator_adaptors.hpp
Index: iterator_adaptors.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/iterator_adaptors.hpp,v
retrieving revision 1.42
diff -r1.42 iterator_adaptors.hpp
928a929
>
931c932,944
< inline typename indirect_iterator_generator<OuterIterator>::type
--- > struct indirect_iterator_selector { > typedef typename detail::iterator_traits<OuterIterator>::value_type OuterValue; > enum { inner_is_const = is_const<typename remove_pointer<OuterValue>::type>::value }; > typedef typename boost::detail::if_true<(inner_is_const)>::template > then< > indirect_iterator_pair_generator<OuterIterator>::const_iterator, > // else > indirect_iterator_pair_generator<OuterIterator>::iterator > >::type type; > }; > > template <class OuterIterator> > inline typename indirect_iterator_selector<OuterIterator>::type 934,935c947 < typedef typename indirect_iterator_generator < <OuterIterator>::type result_t; --- > typedef typename indirect_iterator_selector<OuterIterator>::type result_t; make_indirect_iterator is inside #ifndef BOOST_MSVC which probably means that it is not supposed to be portable to that platform to begin with.