cpp/memory/shared ptr/operator=

Replaces the managed object with the one managed by.

If already owns an object and it is the last  owning it, and  is not the same as, the object is destroyed through the owned deleter.

@1@ Shares ownership of the object managed by. If manages no object,  manages no object too. Equivalent to.

@2@ Move-assigns a from. After the assignment, contains a copy of the previous state of, and  is empty. Equivalent to.

@3@ Transfers the ownership of the object managed by to. If manages no object,  manages no object too. After the assignment, contains the pointer previously held by, and ; also  is empty. Equivalent to.

@4@ Transfers the ownership of the object managed by to. The deleter associated to is stored for future deletion of the managed object. manages no object after the call. Equivalent to.

Exceptions
@3-4@