Страница 2 из 2

Re: Хак для упорядочивания initialization

СообщениеДобавлено: 09.04.2018 22:41:08
olegy123
runewalsh писал(а):Глобальным решением была бы поддержка со стороны компилятора, но такого, к счастью, не будет.

у меня есть статические объекты, их же нужно инициализировать/зарегистрировать в среде.. но саму среду тоже нужно воссоздать и только после сделать инициализацию зависимых статических объектов..
Тут не компилятор нужно менять, тут ось переписывать нужно.

Re: Хак для упорядочивания initialization

СообщениеДобавлено: 10.04.2018 04:41:33
runewalsh
«Няшка» (сомнительная, да) в том, что это переиспользует механизмы RTL, связанные с initialization/finalization. Например, (отсортированные) секции finalization выполнятся в ходе halt, который, в свою очередь, по умолчанию вызывается после любых RTL runtime errors, в т. ч. при необработанном исключении в main.

Того же эффекта можно добиться с помощью AddExitProc, но, опять же, инициализацию придётся вызывать вручную, а пользователь забудет, я постоянно забываю, особенно если до определённого момента модуль работает и так.

Re: Хак для упорядочивания initialization

СообщениеДобавлено: 10.04.2018 06:29:14
olegy123
Я к тому что это очень частное решение, которое если реализуют - то она останется в виде галочки или управляющего идентификатора который будут использовать полтора два человека..
вот мне, чтобы не городить условия проверки первого старта
Код: Выделить всё
if first then ..

чтобы там инициализировать глобальные объекты, а они нужны. пришлось создавать свои визуальные компоненты и там выводить кэлбеки при инициализации среды. Думаю что нужно сделать еще и финализацию.
А как хотелось бы на уровне языка/компилятора автоматизировать процесс. А не придумывать глобальные функции и их тянуть в эти кэлбэки.