[DEBUG] correct uniquePtr

This commit is contained in:
Edouard DUPIN 2018-07-13 22:01:57 +02:00
parent 7125777204
commit 4bc9a2f27b

View File

@ -11,6 +11,7 @@ namespace ememory {
public: public:
EMEM_UPTR_TYPE* m_pointer; EMEM_UPTR_TYPE* m_pointer;
deleterCall m_deleter; //!< Function to call to delete the data pointer deleterCall m_deleter; //!< Function to call to delete the data pointer
private: private:
template <class EMEM_UPTR_TYPE_2> template <class EMEM_UPTR_TYPE_2>
UniquePtr(UniquePtr<EMEM_UPTR_TYPE_2> &) = delete; UniquePtr(UniquePtr<EMEM_UPTR_TYPE_2> &) = delete;
@ -105,18 +106,16 @@ namespace ememory {
bool operator!=(etk::NullPtr) const { bool operator!=(etk::NullPtr) const {
return m_pointer != null; return m_pointer != null;
} }
/*
template <class EMEM_UPTR_TYPE_2>
void swap(UniquePtr<EMEM_UPTR_TYPE_2>& _obj) {
etk::swap(m_pointer, _obj.m_pointer);
}
*/
}; };
template<class EMEM_UPTR_TYPE, class... EMEM_UPTR_ARG> template<class EMEM_UPTR_TYPE, class... EMEM_UPTR_ARG>
UniquePtr<EMEM_UPTR_TYPE> makeUniquePtr(EMEM_UPTR_ARG ... _obj) { UniquePtr<EMEM_UPTR_TYPE> makeUniquePtr(EMEM_UPTR_ARG ... _obj) {
return ememory::UniquePtr<EMEM_UPTR_TYPE>(ETK_NEW(EMEM_UPTR_TYPE, _obj...)); return ememory::UniquePtr<EMEM_UPTR_TYPE>(ETK_NEW(EMEM_UPTR_TYPE, _obj...));
} }
template<class EMEM_UPTR_TYPE_OUT, class EMEM_UPTR_TYPE, class... EMEM_UPTR_ARG>
UniquePtr<EMEM_UPTR_TYPE_OUT> makeUniquePtrCast(EMEM_UPTR_ARG ... _obj) {
return ememory::UniquePtr<EMEM_UPTR_TYPE_OUT>(ETK_NEW(EMEM_UPTR_TYPE, _obj...));
}
template <class EMEM_UPTR_TYPE> template <class EMEM_UPTR_TYPE>
inline void swap(UniquePtr<EMEM_UPTR_TYPE> &_obj1, UniquePtr<EMEM_UPTR_TYPE> &_obj2) { inline void swap(UniquePtr<EMEM_UPTR_TYPE> &_obj1, UniquePtr<EMEM_UPTR_TYPE> &_obj2) {