| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# Kernel.h

Go to the documentation of this file.

    00001 // $Header: /local/reps/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