Cat
Kernel.h
Go to the documentation of this file.
1 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/Kernel.h,v 1.15 2006/05/02 13:03:03 hmd Exp $
2 #ifndef GAUDIKERNEL_KERNEL_H
3 #define GAUDIKERNEL_KERNEL_H
4 
5 // Some pragmas to avoid warnings in VisualC
6 #ifdef _WIN32
7  // Disable warning C4786: identifier was truncated to '255' characters in the debug information
8  #pragma warning ( disable : 4786 )
9  // Disable warning C4291: no matching operator delete found; memory will not be freed if initialization throws an exception
10  #pragma warning ( disable : 4291 )
11  // Disable warning C4250: inheritance via dominance
12  #pragma warning ( disable : 4250 )
13 #endif
14 
15 
16 // Large integer definition depends of the platform
17 #ifdef _WIN32
18  typedef __int64 longlong;
19  #ifndef LONGLONG_MAX
20  #define LONGLONG_MAX 0x7FFFFFFFFFFFFFFFLL
21  #endif
22  #ifndef LONGLONG_MIN
23  #define LONGLONG_MIN 0x8000000000000000LL
24  #endif
25 
26  typedef unsigned __int64 ulonglong;
27  #ifndef ULONGLONG_MAX
28  #define ULONGLONG_MAX 0xFFFFFFFFFFFFFFFFLL
29  #endif
30  #ifndef ULONGLONG_MIN
31  #define ULONGLONG_MIN 0x0000000000000000LL
32  #endif
33 #elif defined(__linux) || defined(__APPLE__)
34  typedef long long int longlong;
35  #ifndef LONGLONG_MAX
36  #define LONGLONG_MAX 0x7FFFFFFFFFFFFFFFLL
37  #endif
38  #ifndef LONGLONG_MIN
39  #define LONGLONG_MIN 0x8000000000000000LL
40  #endif
41  typedef unsigned long long int ulonglong;
42  #ifndef ULONGLONG_MAX
43  #define ULONGLONG_MAX 0xfFFFFFFFFFFFFFFFLL
44  #endif
45  #ifndef ULONGLONG_MIN
46  #define ULONGLONG_MIN 0x0000000000000000LL
47  #endif
48 #else
49  // This will not really work !!
50  struct __longlong { public: long __data[2]; };
53  static const __longlong LONGLONG_MAX = {0x7FFFFFFF, 0xFFFFFFFF};
54  static const __longlong LONGLONG_MIN = {0x80000000, 0x00000000};
55  static const __ulonglong ULONGLONG_MAX = {0xFFFFFFFF, 0xFFFFFFFF};
56  static const __ulonglong ULONGLONG_MIN = {0x00000000, 0x00000000};
57 #endif // linux
58 
59 #ifdef _WIN32
60  #define TEMPLATE_SPECIALIZATION template <>
61 #elif defined(__linux) || defined(__APPLE__)
62  #define TEMPLATE_SPECIALIZATION
63 #endif
64 
65 
66 #endif // GAUDIKERNEL_KERNEL_H
static const __longlong LONGLONG_MIN
Definition: Kernel.h:54
__longlong ulonglong
Definition: Kernel.h:52
__longlong longlong
Definition: Kernel.h:51
static const __ulonglong ULONGLONG_MAX
Definition: Kernel.h:55
long __data[2]
Definition: Kernel.h:50
static const __ulonglong ULONGLONG_MIN
Definition: Kernel.h:56
static const __longlong LONGLONG_MAX
Definition: Kernel.h:53