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

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

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

Сообщение olegy123 » 09.04.2018 22:41:08

runewalsh писал(а):Глобальным решением была бы поддержка со стороны компилятора, но такого, к счастью, не будет.

у меня есть статические объекты, их же нужно инициализировать/зарегистрировать в среде.. но саму среду тоже нужно воссоздать и только после сделать инициализацию зависимых статических объектов..
Тут не компилятор нужно менять, тут ось переписывать нужно.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

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

Сообщение runewalsh » 10.04.2018 04:41:33

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

Того же эффекта можно добиться с помощью AddExitProc, но, опять же, инициализацию придётся вызывать вручную, а пользователь забудет, я постоянно забываю, особенно если до определённого момента модуль работает и так.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25

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

Сообщение olegy123 » 10.04.2018 06:29:14

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

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

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 2

Рейтинг@Mail.ru