#pragma once #include "jobject.hpp" template class JPtr : public JObject { public: JPtr(Ty* impl) :impl(impl) {} ~JPtr() { ((JObject*)impl)->Release(); } public: Ty* operator ->() { return impl; } public: void Release() {} private: Ty* impl; };