The following small example implements a singleton pattern that I\'ve seen many times:
#include class SingletonTest { private: Singleton
if you declare the class which does the actual delete op as a friend (let it be shared_ptr or some kind of default deleter) a friend, your destructor can be private. Although i dont see any necessarity for making it private.
delete
shared_ptr