Здравствуйте, Videoman, Вы писали:
V>У меня есть только одна догадка, что так как служебные потоки не обращаются непосредственно к thread_local объекту напрямую, а только к static мапе, линкеры выкидывают, по их мнению, не создающих внешнего эффекта конструкторы/деструкторы регистраторов.
А ты не рассматриваешь вариант, что это проделки линкера, а не компилера? Не может быть такого, что эти объекты определены в таких единицах трансляции в которых вообще нет никаких видимых связей с другими единицами трансляции и линкеры просто выкидывают весь объектник при линковке? Это тостаточно известная проблема, которая обсуждалась и на РСДН, давненько правда. Она имеет достаточно простое решение — в каком-нибудь общем заколовочном файле определяют константу какого-нибудь класса, а конструктор этого класса определяют в той самой единице трансляции, которую нужно форсированно прилинковать. Зачастую такие классы приходится делать фейковыми, если ничего реального нет под рукой.
--
Справедливость выше закона. А человечность выше справедливости.