|
Boost Users : |
Subject: Re: [Boost-users] Joining two forward ranges
From: er (erwann.rogard_at_[hidden])
Date: 2009-01-13 18:45:33
Steven Watanabe wrote:
> AMDG
>
> er wrote:
>> I'm looking to create an iterator which iterates over two joined ranges:
>>
>> [b0,e0)[b1,e1)
>>
>> I'm sure there's a way to do it with an iterator adapter. I was
>> wondering, however, if someone knew of an already available
>> implementation.
>
> Are both pairs of iterators always the same type?
>
> In Christ,
> Steven Watanabe
Good point, thanks. Here's the exact situation I have:
// mf of a class which derives from super_type
// which prepends 1 to one of the arguments before calling
// the super's (protected) mf
template<typename R0,typename R1>
void mf(
const R0& source,
const R1& rest_weight
){
typedef std::vector<value_type> weight_type;
typedef boost::range_iterator<weight_type> ri_type;
typedef typename ri_type::type iter_type;
typedef typename iterator_difference<iter_type>::type diff_type;
//TODO joined iterator preferable
static weight_type weight(this->weight_size,(value_type)(1));
iter_type i = boost::begin(weight);
std::advance(i,(diff_type)(1));
copy(
boost::begin(rest_weight),
boost::end(rest_weight),
i
);
super_type::mf( source, weight); //args passed by const ref as well
}
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net