Почему деструктор не призван к глобальному объектуC++

Программы на C++. Форум разработчиков
Anonymous
Почему деструктор не призван к глобальному объекту

Сообщение Anonymous »

У меня есть глобальный объект, определенный в том же исходном файле, что и main (): < /p>
DSS::TraceControl traceControl{ std::source_location::current().file_name() };
< /code>
, который инициализирует отслеживание моего приложения до начала main (). < /p>
Это работает нормально. DTOR говорит: < /p>
TraceControl::~TraceControl()
{
OutputDebugStringA("TraceControl destructor\n");
if (erase)
{
OutputDebugStringA("erase is true: Erasing trace file\n");
std::error_code ec;
fs::remove(file, ec);
if (ec)
{
OutputDebugStringA("Error removing trace file\n");
}
else
{
OutputDebugStringA("Trace file erased\n");
}

}
else
{
OutputDebugStringA("erase is false\n");
}
}
< /code>
Если я запускаю программу без активного отладчика (Visual Studio или Windbg), то DTOR не запускается при закрытии приложения. Однако, если я запускаю под отладчиком и < /em> точка останова в DTOR? ВЫХОД?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... bal-object

Вернуться в «C++»