Здравствуйте, Максим Рогожин, Вы писали:
МР>std::list для каждого нового объекта выделяет новую память (с помощью operator new) и помещает туда этот объект (и добавляет ссылки на предыдущий и следующий элементы). Но как это работает в данном случае — ведь еще не началось выполнение программы, а список some_list уже создан?
Вообще-то выполнение программы уже началось, не запустился только основной поток выполнения. Перед его запуском происходит инициализация, вот в процессе инициализации и создаются глобальные объекты.
ПС: когда-то на собеседованиях разные компании баловались этим — "как выполнить какой-нибудь код до начала main?". Вот так, через конструктор глобального объекта.