Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
atomic_int.h
Go to the documentation of this file.
1 #ifndef CLHEP_ATOMIC_INT_H
2 #define CLHEP_ATOMIC_INT_H
3 
4 // ======================================================================
5 //
6 // Use std::atomic when the compiler declares it uses the C++11 standard
7 //
8 // ======================================================================
9 
10 #if (defined (G4MULTITHREADED))
11 
12  #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 7)
13  #include <atomic>
14  #define CLHEP_ATOMIC_INT_TYPE std::atomic<int>
15  #elif __clang__
16  #if __has_feature(c_atomic)
17  #include <atomic>
18  #define CLHEP_ATOMIC_INT_TYPE std::atomic<int>
19  #else
20  #define CLHEP_ATOMIC_INT_TYPE int
21  #endif
22  #else
23  #define CLHEP_ATOMIC_INT_TYPE int
24  #endif
25 
26 #else
27  #define CLHEP_ATOMIC_INT_TYPE int
28 #endif
29 
30 #endif