On Wed, Aug 26, 2009 at 4:29 PM, Mathias Gaunard <mathias.gaunard@ens-lyon.org> wrote:
Anthony Foglia wrote:
Alex Flint wrote:
I'm using a math library that provides a Vector class, but it does not
have begin() or end() method, or any other normal container methods. I
would like to pass it to functions that take a Range object as a
parameter. How can I do this?

   I've done this once as an exercise, but not well enough to walk you through it.  But the documentation's pretty straightforward, once you find the right section:

http://www.boost.org/doc/libs/1_39_0/libs/range/doc/boost_range.html#method2

I thought you could overload begin/end directly and it would get picked up by ADL, but it looks like it's range_begin/range_end.
That really should be changed.

I disagree that this should be changed. This arrangement allows qualified calls to boost::begin(x), boost::end(x) to continue to work and find the approriate range_begin(), range_end() functions via argument dependent lookup. If this rationale does not appear correct, then please explain a little further. I would be happy to make the change if I understand that it really would be an improvement.

Regards,
Neil Groves