Improved version: there can be one global smart pointer instance in the heap and many others on the same stack that are all linked together (no reference counting). Works only if instances on the stack are created from each others.