
27 Sep
2011
27 Sep
'11
2:44 p.m.
2011/9/27 Steven Watanabe <watanabesj@gmail.com>
AMDG
On 09/27/2011 07:23 AM, Gordon Woodhull wrote:
On Sep 26, 2011, at 2:17 PM, TONGARI <tongari95@gmail.com> wrote:
2011/9/27 Peter Dimov <pdimov@pdimov.com>
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.
And thus has the benefit that low and high aren't necessary to be exactly T, just some type that can be implicitly converted to T.