Как получить поддержку thread_local в clang для Mac OSX?

Как показано в этом ответе, clang из Xcode в Mac OSX не поддерживает хранилище thread_local даже с установленными флагами C++11. Даже в последней версии 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
  ^

person WilliamKF    schedule 27.10.2015    source источник
comment
Вместо этого вы могли бы использовать версию clang с открытым исходным кодом? Я столкнулся с той же проблемой. В конце 2016 г.   -  person Calchas    schedule 15.09.2016


Ответы (2)


Версия clang, поставляемая с Xcode 8 (и более поздними версиями), поддерживает ключевое слово thread_local; см. обсуждение здесь.

person rsfinn    schedule 29.04.2017

Вы можете использовать старый метод использования pthread_getspecific() и т. д. для реализации локального хранилища потока (или в Objective-C словарь потока NSThread), если thread_local недоступен в вашей версии компилятора.

person uliwitness    schedule 15.02.2020