#pragma once #include "SWA.inl" #include "Hedgehog/Base/Thread/hhHolder.h" namespace Hedgehog::Base { template class TSynchronizedPtr { xpointer m_pObject; public: TSynchronizedPtr(T* in_pObject); TSynchronizedPtr(); TSynchronizedPtr(const TSynchronizedPtr& in_rOther); TSynchronizedPtr(TSynchronizedPtr&& io_rOther); TSynchronizedPtr& operator=(T* const in_pObject); THolder get() const; THolder operator->() const; THolder operator*() const; explicit operator bool() const; }; }