Boost logo

Boost Users :

Subject: Re: [Boost-users] implementing a new Range
From: Neil Groves (neil_at_[hidden])
Date: 2009-08-26 12:00:27


On Wed, Aug 26, 2009 at 4:29 PM, Mathias Gaunard <
mathias.gaunard_at_[hidden]> 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



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net