$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.