TSharedPtr

If you call .Reset() this will call the destructor of the held object.