Original link: Understanding the inner workings of C++ smart pointers - The shared_ptr / Andreas Fertig.
And the previous one: Understanding the inner workings of C++ smart pointers - The unique_ptr with custom deleter.