Я ссылаюсь на стороннюю библиотеку, которая использует статические переменные.В конечном итоге они инициализируются до main
и преждевременно захватывают ресурсы, что приводит к хаосу в моем приложении.Есть ли какой-то идиома / техника / метод обтекания, чтобы восстановить контроль и определить точку выполнения, где библиотеке разрешено инициализировать все ее статические переменные без взлома самой библиотеки?
В частности, у меня есть thirdpartylib::system
объект, который когда-то определен в main, захватывает все виды ресурсов перед вводом main.Компилятор видит, что код может быть обработан, и затем выполняет инициализацию всех своих статических переменных вне контроля потребителя библиотеки.В идеале, я бы хотел, чтобы какой-то охранник остановил это, пока я не скажу.,
// my code that may exit before I want the lib stuff to be invoked
{
LET_SYSTEM_RUN_RIOT();
thirdpartylib::system sys;
// do some stuff with it
KILL_IT_ALL_WITH_FIRE();
}