Я получаю отчеты об утечке устройства (и диалог ненулевого количества ссылок) из среды отладки D3D11. У меня есть два глобальных класса, которые содержат умные указатели на буфер макета, вершинный шейдер и пиксельный шейдер.
Если я установлю точку останова на деструктор этих классов, я смогу увидеть отчеты об утечках до того, как эти глобальные переменные будут даже удалены, возможно, как и следовало ожидать.
Как правильно исправить это, сохраняя при этом глобальность (пока)? Я планировал добавить функцию «очистки», которая освобождает все вручную во время выключения, а не полагаться на умные указатели, но это похоже на хак.
Да, это немного раздражает. Традиционно я документирую, а затем игнорирую эти ложные срабатывания. Но если вы хотите обойти это, сброс умных указателей в нижней части main
вероятно сделаю работу.
Знаешь, если другие объекты со статической продолжительностью хранения не полагаются на эти классы. Они не правы?