Home » U++ Library support » U++ Core » Defs.h minmax() change/fix
Re: Defs.h minmax() change/fix [message #24069 is a reply to message #24061] |
Thu, 24 December 2009 10:58   |
 |
mirek
Messages: 14256 Registered: November 2005
|
Ultimate Member |
|
|
kohait00 wrote on Wed, 23 December 2009 13:31 | hi there
in Defs.h:214
why not using
template <class T>
inline const T& minmax(const T& x, const T& _min, const T& _max) { return min(max(x, _min), _max); }
instead of
template <class T>
inline T minmax(T x, T _min, T _max) { return min(max(x, _min), _max); }
which is sort of logically semantics
especially when you consider the other related templates:
template <class T> inline const T& min(const T& a, const T& b) { return a < b ? a : b; }
template <class T> inline const T& max(const T& a, const T& b) { return a > b ? a : b; }
|
What if min / max for T is defined returning temporary?
Foo min(const Foo& a, const Foo& b);
then you would be returning reference to temporary....
Well, maybe this is not really strong argument as min/max are rarely defined directly - OTOH compilers are really goot at optimizing, so practical differences in code generated are, I believe, unlikely.
That said, proposed change would be nice if type does not have copy.
I am sort of undecided, but current minmax worked fine for 10 years, I guess there is not a strong incentive to change now.
Mirek
|
|
|
Goto Forum:
Current Time: Wed May 07 14:25:20 CEST 2025
Total time taken to generate the page: 0.04531 seconds
|