00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _WINSTD_H_
00024 #define _WINSTD_H_
00025
00026
00027 #if defined(WIN32) && !defined(__MINGW32__)
00028
00029
00030
00031 #pragma warning(disable:4786)
00032 #define NOMINMAX
00033 #if defined(BL_OLD_STL)
00034 #include <math.h>
00035 #include <stdio.h>
00036 #include <string.h>
00037 #include <stdlib.h>
00038 #else
00039 #include <cmath>
00040 #include <cstdio>
00041 #include <cstring>
00042 #include <cstdlib>
00043 #endif
00044
00045
00046
00047 #undef abs
00048
00049 typedef int mode_t;
00050 typedef int pid_t;
00051
00052
00053 namespace std
00054 {
00055 template <class T> inline T min(const T& l, const T& r) { return (l<r)?l:r; }
00056 template <class T> inline T max(const T& l, const T& r) { return (l<r)?r:l; }
00057 template <class T> inline T abs(const T& r) { return (r<0)?-r:r; }
00058
00059 using ::pow;
00060 using ::fabs;
00061 using ::sqrt;
00062 using ::exp;
00063 using ::log;
00064 using ::log10;
00065 using ::sin;
00066 using ::cos;
00067 using ::tan;
00068 using ::asin;
00069 using ::acos;
00070 using ::atan;
00071 using ::sinh;
00072 using ::cosh;
00073 using ::tanh;
00074 using ::floor;
00075 using ::ceil;
00076 using ::fmod;
00077 using ::frexp;
00078 using ::ldexp;
00079 using ::modf;
00080
00081 using ::exit;
00082 using ::abort;
00083
00084 using ::strerror;
00085 using ::sprintf;
00086 }
00087 #endif
00088
00089 #if defined(BL_OLD_STL)
00090
00091 #include <math.h>
00092 #include <stdio.h>
00093 #include <string.h>
00094 #include <stdlib.h>
00095
00096
00097
00098 #undef abs
00099
00100
00101
00102
00103 namespace std
00104 {
00105
00106
00107 template <class T> inline T abs(const T& r) { return (r<0)?-r:r; }
00108
00109 using ::pow;
00110 using ::fabs;
00111 using ::sqrt;
00112 using ::exp;
00113 using ::log;
00114 using ::log10;
00115 using ::sin;
00116 using ::cos;
00117 using ::tan;
00118 using ::asin;
00119 using ::acos;
00120 using ::atan;
00121 using ::sinh;
00122 using ::cosh;
00123 using ::tanh;
00124 using ::floor;
00125 using ::ceil;
00126 using ::fmod;
00127 using ::frexp;
00128 using ::ldexp;
00129 using ::modf;
00130
00131 using ::exit;
00132 using ::abort;
00133
00134 using ::strerror;
00135 using ::sprintf;
00136 }
00137 #endif
00138
00139
00140 #if defined( BL_OSF1 ) && !defined(BL_KCC_VERSION)
00141 namespace std
00142 {
00143 template <class T> inline T abs(const T& r) { return (r<0)?-r:r; }
00144 }
00145 #endif
00146 #endif