From af4e29f8c071b089fb46b5d8b964dd2b1fb3f57a Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Tue, 11 Mar 2025 23:51:51 +0100 Subject: Remake deref --- asl/types/box.hpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'asl/types/box.hpp') diff --git a/asl/types/box.hpp b/asl/types/box.hpp index 6501e3e..bb4e620 100644 --- a/asl/types/box.hpp +++ b/asl/types/box.hpp @@ -76,18 +76,21 @@ public: } } - constexpr T* get() const { return m_ptr; } + constexpr auto* get(this auto&& self) + { + return self.m_ptr; + } - constexpr T& operator*() const + constexpr auto&& operator*(this auto&& self) { - ASL_ASSERT(m_ptr != nullptr); - return *m_ptr; + ASL_ASSERT(self.m_ptr != nullptr); + return std::forward_like(*self.m_ptr); } - constexpr T* operator->() const + constexpr auto* operator->(this auto&& self) { - ASL_ASSERT(m_ptr != nullptr); - return m_ptr; + ASL_ASSERT(self.m_ptr != nullptr); + return self.m_ptr; } constexpr bool operator==(niche_t) const -- cgit