From a5bb1eeed060c1b4aa256f71df59b8d1adc805c1 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Thu, 6 May 2021 08:21:54 -0400 Subject: [PATCH] [ox/std] Add Deleter parameter to UniquePtr --- deps/ox/src/ox/std/memory.hpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/deps/ox/src/ox/std/memory.hpp b/deps/ox/src/ox/std/memory.hpp index 0337ba56c..a8e19db31 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