#undef min\r
#undef max\r
\r
- inline float max(float a, float b)\r
- {\r
- return a > b ? a : b;\r
- }\r
-\r
- inline float min(float a, float b)\r
- {\r
- return a < b ? a : b;\r
- }\r
-\r
- inline float max(float a, float b, float c)\r
- {\r
- return max(max(a, b), c);\r
- }\r
-\r
- inline float min(float a, float b, float c)\r
- {\r
- return min(min(a, b), c);\r
- }\r
-\r
- inline float max(float a, float b, float c, float d)\r
- {\r
- return max(max(a, b), max(c, d));\r
- }\r
-\r
- inline float min(float a, float b, float c, float d)\r
- {\r
- return min(min(a, b), min(c, d));\r
- }\r
-\r
- inline int max(int a, int b)\r
+ template<class T>\r
+ inline T max(T a, T b)\r
{\r
return a > b ? a : b;\r
}\r
\r
- inline int min(int a, int b)\r
+ template<class T>\r
+ inline T min(T a, T b)\r
{\r
return a < b ? a : b;\r
}\r
\r
- inline int max(int a, int b, int c)\r
- {\r
- return max(max(a, b), c);\r
- }\r
-\r
- inline int min(int a, int b, int c)\r
- {\r
- return min(min(a, b), c);\r
- }\r
-\r
- inline int max(int a, int b, int c, int d)\r
- {\r
- return max(max(a, b), max(c, d));\r
- }\r
-\r
- inline int min(int a, int b, int c, int d)\r
- {\r
- return min(min(a, b), min(c, d));\r
- }\r
-\r
template<class T>\r
inline void swap(T &a, T &b)\r
{\r