00001 #ifndef SPR_BASE_ENV_H
00002 #define SPR_BASE_ENV_H
00003
00004
00005
00006
00007 #if defined _MSC_VER && _MSC_VER <= 1300
00008 #define for if(0); else for
00009 #pragma warning (disable: 4786)
00010 #define TYPENAME
00011 #else
00012 #define TYPENAME typename
00013 #endif
00014
00015 #if defined __BORLANDC__
00016 #pragma warn -8026
00017 #pragma warn -8027
00018 #endif
00019
00020
00021
00022
00023
00024
00025
00026 #ifdef _MSC_VER
00027 #ifdef EXPORT_DLL
00028 #define SPR_DLL __declspec( dllexport )
00029 #pragma warning (disable: 4275 4251)
00030 #elif defined IMPORT_DLL
00031 #define SPR_DLL __declspec( dllimport )
00032 #else
00033 #define SPR_DLL
00034 #endif
00035 #else
00036 #define SPR_DLL
00037 #endif
00038
00039
00040 #if defined _MSC_VER || defined __BORLANDC__
00041 #define SPR_CDECL __cdecl
00042 #else
00043 #define SPR_CDECL
00044 #endif
00045
00046
00047 #define DOUBLECOLON ::
00048
00049
00050 #if defined _MSC_VER
00051 #if _MSC_VER <= 1300
00052 #undef min
00053 #undef max
00054 namespace std{
00055 template <class T>
00056 T min(T t1, T t2){
00057 return t1 < t2 ? t1 : t2;
00058 }
00059 template <class T>
00060 T max(T t1, T t2){
00061 return t1 > t2 ? t1 : t2;
00062 }
00063 }
00064 #else
00065 #undef min
00066 #undef max
00067 #ifndef _MAX
00068 #define _MIN min
00069 #define _MAX max
00070 #endif
00071 #endif
00072 #endif
00073
00074 #endif