From f3f3f1b7d94a490b0762db1d1d4040b7d93facdc Mon Sep 17 00:00:00 2001
From: Morph <39850852+Morph1984@users.noreply.github.com>
Date: Tue, 3 May 2022 02:00:29 -0400
Subject: [PATCH 1/2] hle/result: Add ResultRange overload in ResultVal

Also marks the implicit conversion operator as constexpr instead of consteval as the constructor is not constant evaluated.
---
 src/core/hle/result.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/core/hle/result.h b/src/core/hle/result.h
index 8d38d0030c..1a74a74020 100644
--- a/src/core/hle/result.h
+++ b/src/core/hle/result.h
@@ -181,7 +181,7 @@ public:
     consteval ResultRange(ErrorModule module, u32 description_start, u32 description_end_)
         : code{module, description_start}, description_end{description_end_} {}
 
-    [[nodiscard]] consteval operator ResultCode() const {
+    [[nodiscard]] constexpr operator ResultCode() const {
         return code;
     }
 
@@ -232,6 +232,8 @@ public:
 
     constexpr ResultVal(ResultCode code) : expected{Common::Unexpected(code)} {}
 
+    constexpr ResultVal(ResultRange range) : expected{Common::Unexpected(range)} {}
+
     template <typename U>
     constexpr ResultVal(U&& val) : expected{std::forward<U>(val)} {}
 

From 45591126512f7d6a3f7f3e912df4366bd85157f3 Mon Sep 17 00:00:00 2001
From: Morph <39850852+Morph1984@users.noreply.github.com>
Date: Tue, 3 May 2022 02:18:28 -0400
Subject: [PATCH 2/2] hle/result: Update std::expected replacement message

std::expected is included in C++23
---
 src/core/hle/result.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/core/hle/result.h b/src/core/hle/result.h
index 1a74a74020..569dd9f38f 100644
--- a/src/core/hle/result.h
+++ b/src/core/hle/result.h
@@ -319,7 +319,7 @@ public:
     }
 
 private:
-    // TODO: Replace this with std::expected once it is standardized in the STL.
+    // TODO (Morph): Replace this with C++23 std::expected.
     Common::Expected<T, ResultCode> expected;
 };