shared_ptr <> :: reset () сбросит рефконт на единицу. Если это приводит к снижению количества до нуля, ресурс, на который указывает shared_ptr <>, будет освобожден.
Так что я думаю, что ответ для вас - да, это сработает. Или вы можете просто позволить переменной screenFont быть уничтоженной из-за выпадения из области видимости или чего-то еще, если это то, что должно произойти.
Для ясности, обычное использование shared_ptr <> заключается в том, что вы позволяете ему быть уничтоженным естественным образом, и он будет иметь дело с refcount и освобождает ресурс, когда он естественно падает до нуля. reset () требуется только в том случае, если вам нужно освободить этот конкретный экземпляр общего ресурса до того, как shared_ptr <> будет естественным образом уничтожен.