Да.
Похоже, что экземпляр динамически распределяется функцией, которая имеет доступ к приватному конструктору (члену или другу). Затем должна быть открытая функция для очистки экземпляра, когда вы закончите с ним, у которого есть доступ к приватному деструктору (даже если у вас его нет).
Используйте конструктор shared_ptr
, который принимает пользовательское средство удаления, и подключите его к функции очистки, предоставляемой классом (может потребоваться функция-обертка для соответствия подписи).