Boost logo

Boost :

From: Stefan Slapeta (stefan_at_[hidden])
Date: 2004-07-29 15:58:14


> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Pavol Droba

>
> This fix is correct. It is precisely what is equal ment to
> be. I have overlooked the order of comparisons.
>

An optimization: I realized later that it can be costly to evaluate the eof
states. I would save them in a local bool variable instead of calling the
eof functions twice for each comparison.

...return eof() || Other.eof() ? eof() == Other.eof() : etc.

> find_iterator can be in two states:
> 1) Valid: all internal iterator variables point to valid
> iterators. Valid find
> iterators are equal if they point to the same part of the sequence.
>
> 2) Null: all null iterators are equal and at
> the end of sequence, the iterator automaticaly becames null.
>

After my very first (speculative) posting, I found that in the documentation
and understood that you don't need any special function for end iterators :)

>
> > BTW, the replace test doesn't compile at all with
> VC7.1+STLPort. I'll
> > have a look on that later.
> >
>
> I don't know what can be the problem. Can you elaborate a little more?
>

I didn't investigate more then; today it compiles (I really don't understand
why, I have to admit) _but_: now the same VC 8 regression test fails with
exactly the same error (see below)! (A workaround was to split the function
into some smaller ones.)

..\libs\algorithm\string\test\replace_test.cpp(147) : fatal error C1509:
compiler limit : too many exception handler states in function
'replace_test'. simplify function

Stefan


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