IN OTHER WORDS, the shared_ptr obtained via make_shared calls its destructor but not the operator delete while the shared_ptr obtained via new calls both destructor of Widget and operator delete of Widget..
When you use make_shared it allocates one piece of memory that contains both the Widget object and the reference counter. That means the Widget object can't be allocated and deallocated directly using new and delete.