Объявить деструктор приватным.
cpp
Пользователь сможет создавать объекты такого класса только на стеке, поскольку компилятор явно вызывает деструктор для освобождения памяти при выходе из области видимости. Но при попытке создать объект в куче с помощью new, компилятор генерирует код для последующего вызова delete, который требует доступа к деструктору. Из-за приватного доступа вызвать delete становится невозможно, что вызывает ошибку компиляции.