Subject: Re: [boost] [range] transform surprise
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2011-03-05 09:57:35


On 05/03/2011 15:27, Neal Becker wrote:
> I'm surprised that boost::range::transform args are
>
> template<
> class SinglePassRange1,
> class OutputIterator,
> class UnaryOperation
>>
> OutputIterator transform(const SinglePassRange1& rng,
> OutputIterator out,
> UnaryOperation fun);
>
>
> I would have expected:
>
> template<
> class SinglePassRange1,
> class SinglePassRange2,
> class UnaryOperation
>>
> OutputIterator transform(const SinglePassRange1& rng,
> SinglePassRange2& out,
> UnaryOperation fun);
>
> Why the asymmetry?

An output range would imply that the algorithm does bounds checking on
its target.