Boost logo

Boost :

Subject: Re: [boost] [Boost-users] Maintenace Guidelines wiki page
From: Tomas Puverle (Tomas.Puverle_at_[hidden])
Date: 2008-11-25 22:13:25


"Daniel Walker" <daniel.j.walker_at_[hidden]> wrote in message
news:a733b05a0811251831j57cd6403yc64f00af9b56a6bf_at_mail.gmail.com...

> Let's stick to the facts. The Range concept definitions went from
> supporting up to 6 procedural abstractions (begin(r), end(r),
> empty(r), size(r) rbegin(r), rend(r)) to supporting 2 (begin(r),
> end(r)).

Daniel,

I just ran into this problem today, while trying to fix some of the code
that broke because of the 1.35 changes.

The specification of size() has changed from 1.33.1 to 1.37, presumably in
1.35. In 1.37, it requires RandomAccessRange while in 1.33.1 it only needs
ForwardRange.
This is not a terribly difficult problem for me to fix but it's another
breaking change.
I think the library is trying to enforce certain performance requirements.
IMHO, the restrictions should be enforced by the library user, not the
library itself.

Since I wasn't involved in the original design, I have a question though:
Did the original design require that each Range be at least Bidirectional?
The requirement of rend() and rbegin() is telling me that was.
What am I missing?

Thanks,

Tom


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