$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Neal Becker (ndbecker2_at_[hidden])
Date: 2008-01-10 08:44:13
Oops, forgot to send this:
template<typename range_type>
struct bounded_iterator_type {
  typedef bounded_iterator<typename boost::range_iterator<range_type>::type> type;
};
Neal Becker wrote:
> Maybe add these:
> 
> template<typename range_type>
> inline bounded_iterator<typename boost::range_iterator<range_type>::type>
> make_bounded_iterator (range_type & r) {
>   return bounded_iterator<typename
>   boost::range_iterator<range_type>::type> (r);
> }
> 
> template<typename range_type>
> inline bounded_iterator<typename boost::range_iterator<range_type>::type>
> make_bounded_iterator (range_type const& r) {
>   return bounded_iterator<typename
>   boost::range_iterator<range_type>::type> (r);
> }
> 
> Now you can do:
> 
>   template<typename out_t, typename in_t>
>   inline out_t Map (in_t const& in) const {
>     out_t out (boost::size (in));
>     typename boost::range_iterator<out_t>::type o = boost::begin (out);
>     typename bounded_iterator_type<in_t>::type i =
>     make_bounded_iterator<in_t> (in);
> 
>     for (; i; ++i, ++o)
>       *o = Map1 (*i);
> 
>     return out;
>   }
> 
> 
> _______________________________________________
> Unsubscribe & other changes:
> http://listarchives.boost.org/mailman/listinfo.cgi/boost