20-Sep-2013 15:01, Szymon Gatner пишет:
On Friday, 20 September 2013 at 10:47:52 UTC, Dmitry Olshansky wrote:
20-Sep-2013 14:00, Jacob Carlborg пишет:
On 2013-09-20 11:37, Szymon Gatner wrote:

If only std algorithms took containers (by that I mean things that
container for accepts too) as arguments (and not iterators)... even in
the form of new functions like foreach_all, transform_all etc.

Can't a container be a range as well?


For Christ sake no, no and no. For starters range skips/drops elements
when iterating, and thusly iteration has its own state that is useless
for a container otherwise.


Iteration is a stateful process, ranges are related to the process of
iteration not to containers. As you say state is useless for containers
but is necessary to iteration and its context.


A text-book example of self-destruction(?).
Ranges (in particular Input/Forward) are not much above encapsulation of iteration, hence must contain that state required to iterate said elements. Which leads to the point that indeed containers have no business being ranges by themselves.

The bottom line is:
sort(container[]);
vs
sort(container);

Where I hardly see how coupling containers with algorithms can bring even slightest benefit.

--
Dmitry Olshansky

Reply via email to