Boost logo

Boost :

Subject: Re: [boost] [Review:Algorithms] Order of args to clamp
From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2011-09-27 11:22:45


On Sep 27, 2011, at 7:34 AM, Steven Watanabe wrote:
> On 09/27/2011 07:23 AM, Gordon Woodhull wrote:
>> On Sep 26, 2011, at 2:17 PM, TONGARI <tongari95_at_[hidden]> wrote:
>>
>>> 2011/9/27 Peter Dimov <pdimov_at_[hidden]>
>>>
>>>> Then clamp should be
>>>>
>>>> template<class T> T clamp( T const & value,
>>>> typename identity<T>::type const & low,
>>>> typename identity<T>::type const & high );
>>>
>>>
>>> I second this. BTW, The return type could be T const&.
>>
>> Okay, I'll bite. Why identity and not just T?
>>
>> (I thought this might be a joke at first.)
>>
> Using identity means that T is deduced solely based on the first argument.

A couple of interesting results that I found playing around this morning

        namespace ba = boost::algorithm;

        short foo = 50;
        BOOST_CHECK_EQUAL ( 56, ba::clamp ( foo, 56.9, 129 ));
        BOOST_CHECK_EQUAL ( 24910, ba::clamp ( foo, 12345678, 123456999 ));

-- 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 list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk