if you are always creating a shared_ptr from the weak_ptr from the target, why not create shared_ptrs in the first place? Or more specifically is it possible, that no shared_ptr can be created from the target?