如何在Mac OSX clang上获得对thread_local的支持?

时间:2015-10-27 01:16:34

标签: c++ xcode c++11 clang thread-local

this answer所示,即使设置了C ++ 11标志,Mac OSX上Xcode的clang也不支持thread_local存储。即使在最新版本上,Apple LLVM版本7.0.0(clang-700.1.76),目标:x86_64-apple-darwin15.0.0,线程模型:posix,也不支持thread_local

../../src/dir/sysArch.h:1505:3: error: thread-local storage is not supported
                                       for the current target
  thread_local
  ^

2 个答案:

答案 0 :(得分:3)

Xcode 8(及更高版本)附带的clang版本支持thread_local关键字;参见讨论here

答案 1 :(得分:1)

如果pthread_getspecific()不可用,则可以使用使用NSThread等的旧方法来实现线程本地存储(或在Objective-C中,thread_local的线程字典)在您的编译器版本中。