Boost logo

Boost :

From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2005-08-22 10:50:30


"Pavol Droba" <droba_at_[hidden]> wrote in message
news:20050822095022.GC8823_at_lenin.felcer.sk...

> Both functions should construct a range of type RangeT, that will
> contain elements from Source or [From,To) respectively.

> Motivation:
>
> In the standard library Sequence concept defines a way for constructing a
> sequence from and arbitrary range of iterators. This is very useful
> concept and it would be nice to have something similar available
> in the Range library.
>
> Most significant advantage of this construct is that it allows to create
> algorithms, that modify an input range and return a copy of it.

right. a range is not copyable, so we need a new concept.

> Currently there is no generic way for constructing or modifying a
> range, therefor it restricts the usage of range to non-mutable input
parameters.
>
> For instance a simple to_lower algorithm (available in StringAlgo library)
>
> template<typename SequenceT>
> SequenceT to_lower_copy(const SequenceT& Input, const std::locale&
Loc=std::locale());
>
> requires the input to satisfy sequence requirements so it can construct
the result.
> This effectively disables many advantages of Range library.

by this you mean that the sequence requirement is too strict?

> Because it is not possible
> to adapt an external class (like CString) to work with this algorithm.
> Yes it could be very easy to implement construction for this class.

then what about a CopyableRange concept?

> There is already a similar function in the range library. It's called
copy<> but,
> this function is provided solely for sequences and there is no feasible
and
> documented way for customization.

do you want ADL customization like as with the other functions?

br

-Thorsten


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk