Merge pull request #2309 from mitza-oci/warnings
[ACE_TAO.git] / ACE / ace / Min_Max.h
blobbe7dc1815a92c5d35f22511e878224d741ab7fe7
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file Min_Max.h
7 * Define an appropriate set of min()/max() functions using templates.
9 * @author Derek Dominish <Derek.Dominish@Australia.Boeing.com>
11 //=============================================================================
13 #ifndef ACE_MIN_MAX_H
14 #define ACE_MIN_MAX_H
15 #include /**/ "ace/pre.h"
17 #include /**/ "ace/config-all.h"
19 # if !defined (ACE_LACKS_PRAGMA_ONCE)
20 # pragma once
21 # endif /* ACE_LACKS_PRAGMA_ONCE */
23 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
25 template <class T>
26 inline const T &
27 ace_min (const T &t1, const T &t2)
29 return t2 > t1 ? t1 : t2;
32 template <class T>
33 inline const T &
34 ace_max (const T &t1, const T &t2)
36 return t1 > t2 ? t1 : t2;
39 template <class T>
40 inline const T &
41 ace_min (const T &t1, const T &t2, const T &t3)
43 return ace_min (ace_min (t1, t2), t3);
46 template <class T>
47 inline const T &
48 ace_max (const T &t1, const T &t2, const T &t3)
50 return ace_max (ace_max (t1, t2), t3);
53 template <class T>
54 inline const T &
55 ace_range (const T &min, const T &max, const T &val)
57 return ace_min (ace_max (min, val), max);
60 ACE_END_VERSIONED_NAMESPACE_DECL
62 # define ACE_MIN(a,b) ace_min((a),(b))
63 # define ACE_MAX(a,b) ace_max((a),(b))
64 # define ACE_RANGE(a,b,c) ace_range((a),(b),(c))
66 #include /**/ "ace/post.h"
67 #endif /* ACE_MIN_MAX_H */