Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
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 Go to previous messageGo to previous message
mirek is currently offline  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
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Uuid formating with dashes
Next Topic: ERROR: EXCEPTION_ACCESS_VIOLATION IN CORE ON DEBUGGING!
Goto Forum:
  


Current Time: Wed May 07 14:25:20 CEST 2025

Total time taken to generate the page: 0.04531 seconds