|
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