
Joel de Guzman <joel@boost-consulting.com> writes:
* Boost.Range and Boost.Fusion both interpret an int*[4] 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