deconstruct_ptr: adds support for postconstructors and predestructors to objects managed by shared_ptr.
: ----------------------------------------------------------------------