Boost logo

Boost :

Subject: Re: [boost] AlRangeExandrescu?
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2009-07-24 11:55:58

Mathias Gaunard wrote:

>> You would pass two adjacent ranges, like D's bringToFront (a
>> generalization of STL's rotate, see
>> takes.
> Nice idea, that could work.
> But how can I generate those two adjacent ranges in the first place at
> reasonable costs? Do ranges requires to provide a constant time
> "complement" primitive?

To be clearer, let's suppose I want to do the following with
Alexandresuc ranges.

range r = myrange;
for(range r = myrange; !r.empty(); r.popFront())
     if(is_word_boundary(???, r))
         // ...

"???" could be something like complement(myrange, r) but I don't see how
to implement that generically other than linearly, and still that would
require a primitive to compare ranges.

the iterator solution, however, is straightforward:

for(iterator it = myrange.begin(); it != myrange.end(); ++it)
     if(is_word_boundary(myrange.begin(), it, myrange.end())
         // ...

Boost list run by bdawes at, gregod at, cpdaniel at, john at