2015-08-08 3 views
5

При компиляции и связывании библиотеки или программы C++ нет гарантий относительно порядка инициализации статических объектов C++ среди единиц перевода. GCC offers init_priority, чтобы решить эту проблему для статических архивов, разделяемых объектов и программ:Что такое Microsoft, эквивалентный опции GCC init_priority?

init_priority (приоритет)

        В стандартном C++, объекты, определенные в области видимости пространства имен гарантированно
        должны быть инициализированы в порядке, строго соответствующем порядку, указанному в их
        определений в данной единице перевода. Гарантийный платеж не взимается
        Инициализация единиц перевода. Тем не менее, GNU C++ позволяет
        пользователям контролировать порядок инициализации объектов, определенных в
        пространства имен рамки с атрибутом init_priority, указав относительный приоритет
       , постоянное интегральное выражение в настоящее время ограничено
        между 101 и 65535 включительно. Более низкие цифры указывают на более высокий
        приоритет.

(Статический архив кажется сложным, потому что он (предположительно) будет связан кем-то другим).

Что предлагает Microsoft для управления порядком инициализации статических объектов C++ среди единиц перевода?

ответ

3

#pragma init_seg, вероятно, самый аналогичный документированный эквивалент.

+0

Спасибо за ответ. Я не забыл про вас. Я просто не успел проверить его (и принять, если он работает). – jww

Смежные вопросы