Boost logo

Boost Users :

Subject: Re: [Boost-users] [range] signature discrepancy between equal_range and upper_bound
From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2011-12-06 14:29:34


On Dec 6, 2011, at 11:17 AM, giecrilj_at_[hidden] wrote:

>> Re: signature discrepancy between equal_range and upper_bound
>>
>>> The algorithm equal_range takes the Value by constant reference
>>> while the algorithm upper_bound takes Value by value.
>>> Why is that? =A0(Note that standard algorithms take a constant reference.)
>>
>> Sorry to be obtuse, but... are you talking about a Boost library? If
>> so, which one?
>
> <URL: file:///usr/share/doc/packages/boost-1.44.0/libs/range/doc/html/range/reference/algorithms/non_mutating/upper_bound.html >

I think what the OP is saying is that in the STL, we have:
                equal_range ( ForwardIterator first, ForwardIterator last, const T& value );
and upper_bound ( ForwardIterator first, ForwardIterator last, const T& value );

but in Boost.Range, we have:
                equal_range ( Range &r, const T& value );
and upper_bound ( Range &r, T value );

And he's wondering why boost::range::upper_bound takes its' parameter by value.

Is that correct?

-- Marshall

Marshall Clow Idio Software <mailto:mclow.lists_at_[hidden]>

A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait).
        -- Yu Suzuki


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