I couldn't understand how the program below compiles successfully.
class SomeClass {
public: /** Singleton **/
    static SomeClass &instance() {
        static SomeClass singleInstance;
        return singleInstance;
    };
private: 
    SomeClass() = default;
    SomeClass(const SomeClass&) = delete;
    SomeClass &operator=(const SomeClass&) = delete;
    ~SomeClass() {}
};
int main() 
{
    SomeClass::instance();
    // SomeClass::instance().~SomeClass(); // Compiles if destructor was public
    return 0;
}
- Who is responsible for calling the destructor of the Singleton instance?
- How does the underlying mechanism access a private method?
