CCfits
2.5
|
00001 //1 00002 //2 00003 //3 00004 //4 00027 // Use "#pragma once" instead of "ifndef MSCONFIG_H, define MSCONFIG_H, 00028 // #endif" if you know you are using a Microsoft compiler, which we are 00029 // if this file is being included. Using "pragma once" is much faster 00030 // and less error prone. 00031 #pragma once 00032 00033 // _MSC_VER == 1300 is the first release of Microsoft Visual C++ .NET. 00034 // There are much fewer problems with this version. So much of this 00035 // file will be skipped 00036 00040 #define ITERATORBASE_DEFECT 1 00041 00045 #if _MSC_VER >= 1300 00046 #define SPEC_TEMPLATE_DECL_DEFECT 1 00047 #endif 00048 00053 #define TEMPLATE_AMBIG7_DEFECT 1 00054 00056 #undef SSTREAM_DEFECT 00057 00058 # pragma warning(disable:4244) // conversion from double to float 00059 # pragma warning(disable:4305) // truncation from const double to const float 00060 # pragma warning(disable:4800) // forcing value to bool (performance warning) 00061 00062 #if _MSC_VER < 1300 00063 00064 /* Turn off annoying warning. */ 00065 00066 # pragma warning(disable:4250) // inherits via dominance 00067 # pragma warning(disable:4786) // '255' characters in the debug information 00068 00069 00071 #ifndef M_PI 00072 #define M_PI 3.14159265358979323846 00073 #endif 00074 00078 #define SPEC_TEMPLATE_IMP_DEFECT 1 00079 00083 #define TEMPLATE_AMBIG_DEFECT 1 00084 00086 #define TERMINATE_DEFECT 00087 00092 #define BIND2ND_DEFECT 1 00093 00100 #define CLONE_DEFECT 1 00101 00104 #define ITERATOR_MEMBER_DEFECT 1 00105 00109 #define ITERATORBASE_DEFECT 1 00110 00113 #define MEMFUN1_DEFECT 1 00114 00117 #define TRANSFORM_DEFECT 1 00118 00121 #define VALARRAY_DEFECT 1 00122 00123 namespace std { 00124 00127 template < class T > 00128 inline const T& max ( const T & a, const T & b ) 00129 { 00130 // Break this into two lines to avoid an incorrect warning with 00131 // Cfront-based compilers. 00132 const T & retval = a < b ? b : a; 00133 00134 return retval; 00135 } 00136 00139 template < class T > 00140 inline const T& min ( const T & a, const T & b) 00141 { 00142 // Break this into two lines to avoid an incorrect warning with 00143 // Cfront-based compilers. 00144 const T & retval = b < a ? b : a; 00145 00146 return retval; 00147 } 00148 00151 template < class T > 00152 inline const T & abs ( const T & a ) 00153 { 00154 const T & retval = a < 0 ? -a : a; 00155 00156 return retval; 00157 } 00158 00159 } //end namespace std:: 00160 00161 #endif