Geant4-11
G4Types.hh
Go to the documentation of this file.
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//
83using G4double = double;
84using G4float = float;
85using G4int = int;
86using G4bool = bool;
87using G4long = long;
88using 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//
93class __void__;
94
95#endif /* G4TYPES_HH */
float G4float
Definition: G4Types.hh:84
double G4double
Definition: G4Types.hh:83
long G4long
Definition: G4Types.hh:87
bool G4bool
Definition: G4Types.hh:86
std::complex< G4double > G4complex
Definition: G4Types.hh:88
int G4int
Definition: G4Types.hh:85