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.
master
Morph 2022-05-03 02:00:29 +07:00
parent b06f9f2606
commit f3f3f1b7d9
1 changed files with 3 additions and 1 deletions

@ -181,7 +181,7 @@ public:
consteval ResultRange(ErrorModule module, u32 description_start, u32 description_end_) consteval ResultRange(ErrorModule module, u32 description_start, u32 description_end_)
: code{module, description_start}, description_end{description_end_} {} : code{module, description_start}, description_end{description_end_} {}
[[nodiscard]] consteval operator ResultCode() const { [[nodiscard]] constexpr operator ResultCode() const {
return code; return code;
} }
@ -232,6 +232,8 @@ public:
constexpr ResultVal(ResultCode code) : expected{Common::Unexpected(code)} {} constexpr ResultVal(ResultCode code) : expected{Common::Unexpected(code)} {}
constexpr ResultVal(ResultRange range) : expected{Common::Unexpected(range)} {}
template <typename U> template <typename U>
constexpr ResultVal(U&& val) : expected{std::forward<U>(val)} {} constexpr ResultVal(U&& val) : expected{std::forward<U>(val)} {}