![]() |
|
|
Generated: 8 Jan 2009 |
00001 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/Kernel.h,v 1.15 2006/05/02 13:03:03 hmd Exp $ 00002 #ifndef GAUDIKERNEL_KERNEL_H 00003 #define GAUDIKERNEL_KERNEL_H 00004 00005 // Some pragmas to avoid warnings in VisualC 00006 #ifdef _WIN32 00007 // Disable warning C4786: identifier was truncated to '255' characters in the debug information 00008 #pragma warning ( disable : 4786 ) 00009 // Disable warning C4291: no matching operator delete found; memory will not be freed if initialization throws an exception 00010 #pragma warning ( disable : 4291 ) 00011 // Disable warning C4250: inheritance via dominance 00012 #pragma warning ( disable : 4250 ) 00013 #endif 00014 00015 00016 // Large integer definition depends of the platform 00017 #ifdef _WIN32 00018 typedef __int64 longlong; 00019 #ifndef LONGLONG_MAX 00020 #define LONGLONG_MAX 0x7FFFFFFFFFFFFFFFLL 00021 #endif 00022 #ifndef LONGLONG_MIN 00023 #define LONGLONG_MIN 0x8000000000000000LL 00024 #endif 00025 00026 typedef unsigned __int64 ulonglong; 00027 #ifndef ULONGLONG_MAX 00028 #define ULONGLONG_MAX 0xFFFFFFFFFFFFFFFFLL 00029 #endif 00030 #ifndef ULONGLONG_MIN 00031 #define ULONGLONG_MIN 0x0000000000000000LL 00032 #endif 00033 #elif defined(__linux) || defined(__APPLE__) 00034 typedef long long int longlong; 00035 #ifndef LONGLONG_MAX 00036 #define LONGLONG_MAX 0x7FFFFFFFFFFFFFFFLL 00037 #endif 00038 #ifndef LONGLONG_MIN 00039 #define LONGLONG_MIN 0x8000000000000000LL 00040 #endif 00041 typedef unsigned long long int ulonglong; 00042 #ifndef ULONGLONG_MAX 00043 #define ULONGLONG_MAX 0xfFFFFFFFFFFFFFFFLL 00044 #endif 00045 #ifndef ULONGLONG_MIN 00046 #define ULONGLONG_MIN 0x0000000000000000LL 00047 #endif 00048 #else 00049 // This will not really work !! 00050 struct __longlong { public: long __data[2]; }; 00051 typedef __longlong longlong; 00052 typedef __longlong ulonglong; 00053 static const __longlong LONGLONG_MAX = {0x7FFFFFFF, 0xFFFFFFFF}; 00054 static const __longlong LONGLONG_MIN = {0x80000000, 0x00000000}; 00055 static const __ulonglong ULONGLONG_MAX = {0xFFFFFFFF, 0xFFFFFFFF}; 00056 static const __ulonglong ULONGLONG_MIN = {0x00000000, 0x00000000}; 00057 #endif // linux 00058 00059 #ifdef _WIN32 00060 #define TEMPLATE_SPECIALIZATION template <> 00061 #elif defined(__linux) || defined(__APPLE__) 00062 #define TEMPLATE_SPECIALIZATION 00063 #endif 00064 00065 00066 #endif // GAUDIKERNEL_KERNEL_H