Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
config.h
Go to the documentation of this file.
1 // Copyright FreeHEP, 2005.
2 #ifndef CHEPREP_CONFIG_H
3 #define CHEPREP_CONFIG_H 1
4 
9 namespace cheprep {
10 
11 #if defined(WIN32) && !defined(GNU_GCC)
12 
13 // WIN32 and NOT GNU_GCC
14 typedef __int64 int64;
15 typedef unsigned __int64 uint64;
16 #define CHEPREP_INT64_FORMAT "%ld"
17 #define CHEPREP_UINT64_FORMAT "%uld"
18 
19 #else // other than WIN32-MSVC
20 #if defined(_LP64)
21 
22 // 64 Bit Platforms
23 typedef long int64;
24 typedef unsigned long uint64;
25 #define CHEPREP_INT64_FORMAT "%ld"
26 #define CHEPREP_UINT64_FORMAT "%uld"
27 
28 #else
29 
30 // 32-Bit Platforms
31 typedef long long int64;
32 typedef unsigned long long uint64;
33 #define CHEPREP_INT64_FORMAT "%lld"
34 #define CHEPREP_UINT64_FORMAT "%ulld"
35 
36 #endif // 32-Bit Platforms
37 #endif // other than WIN32-MSVC
38 
39 } // namespace cheprep
40 
41 #ifdef WIN32
42 #ifndef GNU_GCC
43 // Disable warning C4786: identifier was truncated to '255' characters in the debug information
44  #pragma warning ( disable : 4786 )
45 // Disable warning C4250: inherits via dominance
46  #pragma warning ( disable : 4250 )
47 #ifdef VC6
48 // FIX for KB 168440 - VC6
49 // Stream Operator << Cannot Handle __int64 Type
50  #include<iostream>
51 
52  inline std::ostream& operator<<(std::ostream& os, __int64 i ) {
53  char buf[20];
54  sprintf(buf,"%I64d", i );
55  os << buf;
56  return os;
57  }
58 #endif // VC6
59 #endif // GNU_GCC
60 #endif // WIN32
61 
62 
63 #endif // CHEPREP_CONFIG_H