Что я действительно хочу, так это как узнать, когда каждая стадия инициализации C ++ действительно СДЕЛАНА?
При статической инициализации назначаются простые вещи. Затем происходит динамическая статическая инициализация, при которой присваивается более сложная статика, которая не определяется в «единицах перевода». Это ужасно, и не так много простых способов справиться. Я использую пространства имен в местах, чтобы сделать немедленное назначение, которое происходит при загрузке файлов заголовков, но недостатком здесь является то, что это может быть перезаписано на одном из этапов инициализации.
Я могу установить инициализацию как функцию, которая делает «правильные вещи», но было бы намного проще, если бы я мог ЗНАТЬ, в какой «фазе» я нахожусь. Насколько я могу судить, это никак не возможно, но я надеюсь, что у кого-то будут хорошие новости.
Я обошел проблему, вызвавшую это: код, который не использовался, был неожиданно связан, потому что он был в проекте. Было бы неплохо узнать ответ на этот вопрос, но я предполагаю, что ответ «нет способа узнать наверняка».
Я редактировал вопрос, я не очень хочу знать, что main запускается как таковой.