Boost logo

Boost :

From: Stefan Slapeta (stefan_nospam__at_[hidden])
Date: 2004-07-13 05:05:40


Pavol Droba wrote:

>
> I have fixed all regresions that I could. No luck with the remaining. Major compiler
> platforms are regression free.
>

I've investigated what the Intel problem is. Even if I don't know why
yet, I know what the problem is; for the split testcases where input is
of const char*, the iterators get confused somehow.

See iter_find.hpp/line 144:

In the constructor of SequenceSequenceT Tmp(...), the sequence passed is
empty.

I've found a workaround which works, but I still can't understand why:
just make local variables for the iterators!

input_iterator_type InputEnd=end(Input);

typedef transform_iterator<copy_range_type, find_iterator_type>
transform_iter_t;

transform_iter_t b = make_transform_iterator(
                        find_iterator_type( begin(Input), InputEnd, Finder ),
                        copy_range_type());

transform_iter_t e = make_transform_iterator(
                        find_iterator_type(),
                        copy_range_type());

SequenceSequenceT Tmp(b, e);

Result.swap(Tmp);

With this code, everything is fine. I hope I can find out the reason for
this strange compiler behaviour...

Stefan


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