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