C ++ 11 поддержка ключевых слов thread_local в Visual Studio 11 - PullRequest
13 голосов
/ 08 января 2012

Таким образом, есть список функций c ++ 11, поддерживаемых Visual Studio .

Поддержка thread_local помечена как частичная.Я не смог найти объяснения, что именно означает частичная поддержка здесь.Неужели они просто использовали псевдоним __declspec (thread)?

Я мог бы просто использовать boost :: thread_specific_ptr, но, кажется, есть некоторые сообщения, что boost :: thread_specific_ptr медленный .Это может или не может быть правдой.

В частности, я хочу быстрый TLS на x86 / x64 на самых последних linux + gcc и windows + msvc.Быстрый означает, что никаких системных вызовов там, где это возможно (я думаю, что это возможно для платформ выше.)

1 Ответ

6 голосов
/ 08 января 2012

Так что я немного покопался в семантике thread_local. gcc __thread и msvc __declspec (thread) имеют ту же семантику, что и друг друга, и thread_local (за исключением динамической инициализации, которая могла или не могла сделать это в стандарте.) Так что это действительно не проблема для моего варианта использования. Я просто сделаю определение, которое будет псевдонимом того или иного специфичного для платформы атрибута.

...