ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4Types.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4Types.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // G4Types
27 //
28 // Definition of global GEANT4 native types
29 
30 // Author: G.Cosmo (CERN), 1995
31 // --------------------------------------------------------------------
32 #ifndef G4TYPES_HH
33 #define G4TYPES_HH 1
34 
35 // Fundamental definitions
36 #ifndef G4GMAKE
37 # include "G4GlobalConfig.hh"
38 #endif
39 
40 #ifdef WIN32
41 // Disable warning C4786 on WIN32 architectures:
42 // identifier was truncated to '255' characters
43 // in the debug information
44 //
45 # pragma warning(disable : 4786)
46 //
47 // Define DLL export macro for WIN32 systems for
48 // importing/exporting external symbols to DLLs
49 //
50 # if defined G4LIB_BUILD_DLL && !defined G4MULTITHREADED
51 # define G4DLLEXPORT __declspec(dllexport)
52 # define G4DLLIMPORT __declspec(dllimport)
53 # else
54 # define G4DLLEXPORT
55 # define G4DLLIMPORT
56 # endif
57 //
58 // Unique identifier for global module
59 //
60 # if defined G4GLOB_ALLOC_EXPORT
61 # define G4GLOB_DLL G4DLLEXPORT
62 # define G4MTGLOB_DLL __declspec(dllexport)
63 # else
64 # define G4GLOB_DLL G4DLLIMPORT
65 # define G4MTGLOB_DLL __declspec(dllimport)
66 # endif
67 #else
68 # define G4DLLEXPORT
69 # define G4DLLIMPORT
70 # define G4GLOB_DLL
71 # define G4MTGLOB_DLL
72 #endif
73 
74 #include <complex>
75 
76 // Definitions for Thread Local Storage
77 //
78 #include "tls.hh"
79 
80 // Typedefs to decouple from library classes
81 // Typedefs for numeric types
82 //
83 using G4double = double;
84 using G4float = float;
85 using G4int = int;
86 using G4bool = bool;
87 using G4long = long;
88 using G4complex = std::complex<G4double>;
89 
90 // Forward declation of void type argument for usage in direct object
91 // persistency to define fake default constructors
92 //
93 class __void__;
94 
95 #endif /* G4TYPES_HH */