Commit b1a55ca3 authored by PM_Extra's avatar PM_Extra

Use the feature checking macros to detect thread_local support in clang.

parent 68cc3e68
...@@ -48,6 +48,10 @@ ...@@ -48,6 +48,10 @@
#endif #endif
#ifndef __has_feature // Clang - feature checking macros.
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
#endif
namespace spdlog namespace spdlog
{ {
namespace details namespace details
...@@ -315,7 +319,7 @@ inline size_t _thread_id() ...@@ -315,7 +319,7 @@ inline size_t _thread_id()
//Return current thread id as size_t (from thread local storage) //Return current thread id as size_t (from thread local storage)
inline size_t thread_id() inline size_t thread_id()
{ {
#if defined(_MSC_VER) && (_MSC_VER < 1900) || defined(__clang_major__) && (__clang_major__ < 8) #if defined(_MSC_VER) && (_MSC_VER < 1900) || defined(__clang__) && !__has_feature(cxx_thread_local)
return _thread_id(); return _thread_id();
#else #else
static thread_local const size_t tid = _thread_id(); static thread_local const size_t tid = _thread_id();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment