summaryrefslogtreecommitdiff
path: root/asl/types/option.hpp
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2025-02-25 00:08:02 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2025-02-25 00:08:11 +0100
commita808626873cde6665fbcb27de4f1a8e16518b2da (patch)
tree8b81897a8c6070b7b57f86f6a98da2531d0ec84a /asl/types/option.hpp
parentaa73023bee1aebc745188e54039d3bf567be97e3 (diff)
Start using deducing this, needs more utilities work
Diffstat (limited to 'asl/types/option.hpp')
-rw-r--r--asl/types/option.hpp20
1 files changed, 4 insertions, 16 deletions
diff --git a/asl/types/option.hpp b/asl/types/option.hpp
index 86cfca3..5cbb759 100644
--- a/asl/types/option.hpp
+++ b/asl/types/option.hpp
@@ -365,23 +365,11 @@ public:
}
}
- // @Todo(C++23) Deducing this
- constexpr T&& value() &&
+ template<typename Self>
+ constexpr auto&& value(this Self&& self)
{
- ASL_ASSERT_RELEASE(has_value());
- return ASL_MOVE(m_payload).as_init_unsafe();
- }
-
- constexpr T& value() &
- {
- ASL_ASSERT_RELEASE(has_value());
- return m_payload.as_init_unsafe();
- }
-
- constexpr const T& value() const&
- {
- ASL_ASSERT_RELEASE(has_value());
- return m_payload.as_init_unsafe();
+ ASL_ASSERT_RELEASE(self.has_value());
+ return ASL_FWD(self).m_payload.as_init_unsafe();
}
template<typename U>