При компиляции и связывании библиотеки или программы C++ нет гарантий относительно порядка инициализации статических объектов C++ среди единиц перевода. GCC offers init_priority
, чтобы решить эту проблему для статических архивов, разделяемых объектов и программ:Что такое Microsoft, эквивалентный опции GCC init_priority?
init_priority (приоритет)
В стандартном C++, объекты, определенные в области видимости пространства имен гарантированно
должны быть инициализированы в порядке, строго соответствующем порядку, указанному в их
определений в данной единице перевода. Гарантийный платеж не взимается
Инициализация единиц перевода. Тем не менее, GNU C++ позволяет
пользователям контролировать порядок инициализации объектов, определенных в
пространства имен рамки с атрибутом init_priority, указав относительный приоритет
, постоянное интегральное выражение в настоящее время ограничено
между 101 и 65535 включительно. Более низкие цифры указывают на более высокий
приоритет.
(Статический архив кажется сложным, потому что он (предположительно) будет связан кем-то другим).
Что предлагает Microsoft для управления порядком инициализации статических объектов C++ среди единиц перевода?
Спасибо за ответ. Я не забыл про вас. Я просто не успел проверить его (и принять, если он работает). – jww