home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / OTHERUTI / TCPP30-1.ZIP / CLASSINC.ZIP / STDTEMPL.H < prev    next >
Text File  |  1992-02-18  |  2KB  |  55 lines

  1. /*------------------------------------------------------------------------*/
  2. /*                                                                        */
  3. /*  STDTEMPL.H                                                            */
  4. /*                                                                        */
  5. /*  Copyright Borland International 1991                                  */
  6. /*  All Rights Reserved                                                   */
  7. /*                                                                        */
  8. /*                                                                        */
  9. /*  Implements commonly used template functions min(), max(), range()     */
  10. /*                                                                        */
  11. /*      T min( T, T ) returns the lesser of its arguments                 */
  12. /*                                                                        */
  13. /*      T min( T, T, T ) returns the least of its arguments               */
  14. /*                                                                        */
  15. /*      T max( T, T ) returns the greater of its arguments                */
  16. /*                                                                        */
  17. /*      T max( T, T, T ) returns the greatest of its arguments            */
  18. /*                                                                        */
  19. /*      T range( T minVal, T maxVal, T val ) returns val if val is        */
  20. /*          between minVal and maxVal.  If val is greater than maxVal,    */
  21. /*          returns maxVal.  If val is less than minVal, returns minVal.  */
  22. /*                                                                        */
  23. /*------------------------------------------------------------------------*/
  24.  
  25. #if !defined( __STDTEMPL_H )
  26. #define __STDTEMPL_H
  27.  
  28. template <class T> inline T min( T t1, T t2 )
  29. {
  30.     return t1>t2 ? t2 : t1;
  31. }
  32.  
  33. template <class T> inline T min( T t1, T t2, T t3 )
  34. {
  35.     return t1>t2 ? (t2>t3 ? t3 : t2) : (t1>t3 ? t3 : t1 );
  36. }
  37.  
  38. template <class T> inline T max( T t1, T t2 )
  39. {
  40.     return t1>t2 ? t1 : t2;
  41. }
  42.  
  43. template <class T> inline T max( T t1, T t2, T t3 )
  44. {
  45.     return t1>t2 ? (t1>t3 ? t1 : t3) : (t2>t3 ? t2 : t3);
  46. }
  47.  
  48. template <class T> inline T range( T minVal, T maxVal, T val )
  49. {
  50.     return min( maxVal, max( minVal, val ) );
  51. }
  52.  
  53. #endif  // __STDTEMPL_H
  54.  
  55.