diff --git a/src/common/Utilities/UniqueTrackablePtr.h b/src/common/Utilities/UniqueTrackablePtr.h index 6c90dfd2752..c20eea32d17 100644 --- a/src/common/Utilities/UniqueTrackablePtr.h +++ b/src/common/Utilities/UniqueTrackablePtr.h @@ -179,6 +179,14 @@ public: unique_weak_ptr(unique_weak_ptr&& other) noexcept : _ptr(std::move(other)._ptr) { } + template + unique_weak_ptr(unique_trackable_ptr const& aliased, T* aliasValue) + : _ptr(std::shared_ptr(aliased._ptr, aliasValue)) { } + + template + unique_weak_ptr(unique_trackable_ptr&& aliased, T* aliasValue) + : _ptr(std::shared_ptr(std::move(aliased)._ptr, aliasValue)) { } + unique_weak_ptr& operator=(unique_trackable_ptr const& trackable) { _ptr = trackable._ptr;