diff --git a/deps/ox/src/ox/std/memory.hpp b/deps/ox/src/ox/std/memory.hpp index 0337ba56..a8e19db3 100644 --- a/deps/ox/src/ox/std/memory.hpp +++ b/deps/ox/src/ox/std/memory.hpp @@ -13,6 +13,13 @@ namespace ox { template +struct DefaultDelete { + constexpr void operator()(T *p) noexcept { + delete p; + } +}; + +template> class UniquePtr { private: @@ -30,7 +37,7 @@ class UniquePtr { } ~UniquePtr() { - delete m_t; + DefaultDelete()(m_t); } constexpr T *release() noexcept { @@ -49,7 +56,7 @@ class UniquePtr { auto t = m_t; m_t = other.m_t; other.m_t = nullptr; - delete t; + DefaultDelete()(t); } template