Zerstören eines Singleton-Objekts

Was ist der beste Weg, um ein Singleton-Objekt zu zerstören?

case A: Single-Threaded-Umgebung
case B: Multi-Threaded-Umgebung

Beispiel-Snippets (falls vorhanden) sind sehr hilfreich.

[EDIT] Ich habe keinen speziellen Anwendungsfall. Ich versuche nur zu verstehen, dass wenn überhaupt, der Singleton verwendet werden muss, um ihn korrekt zu zerstören. Soweit ich weiß, gibt es aus den Kommentaren zwei mögliche Szenarien:
1. Zerstöre den Singleton, wenn kein Code darauf zugreift. (Verwende intelligente Zeiger, die dafür sorgen, dass das Objekt selbst mit RAII zerstört wird.)
2. Zerstören Sie einen Singleton, wenn Sie das Programm beenden, unabhängig davon, ob sich Code an dem Singleton festhielt oder nicht. (Explizite Zerstörung durch Löschen der Instanz kurz vor den Hauptausgängen)

Antworten auf die Frage(12)

Ihre Antwort auf die Frage