From: David Abrahams (dave_at_[hidden])
Date: 2006-09-29 04:59:46
Joel de Guzman <joel_at_[hidden]> writes:
>> * Boost.Range and Boost.Fusion both interpret an int* as a
>> sequence of 4 values of type int*. Consistent
>> * Boost.Fusion interprets a pair<int*,int*> as a sequence of two
>> values of type int*.
>> * Boost.Range interprets a pair<int*,int*> x as a sequence of
>> x.second-x.first values of type int.
> Oh man, Now I see the problem. Pardon my slowness!!! Well, it
> seems, this interpretation of Boost.Range for pair<T*,T*> (or in
> general, std::pair<iterator,iterator> is at the very least
> suspicious. If we all agree that pair<T,T> is a tuple (a
> sequence in Fusion's sense), then pair<T*,T*> shouldn't be
> any different. I'd say that treating std::pair<iterator,iterator>
> as a runtime sequence is the wrong generalization.
I disagree. There's no "wrong" here. It's going to be very common
that in two different well-designed generic libraries, one 3rd party type
plays different two different roles.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk