From 7a1eb4d5bfa406019af3db8d6c41ddae6df6c3c7 Mon Sep 17 00:00:00 2001 From: Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:29:13 -0600 Subject: [PATCH] Add a Result converting constructor --- src/utils/result.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/utils/result.hpp b/src/utils/result.hpp index 75d0694..dea6e16 100644 --- a/src/utils/result.hpp +++ b/src/utils/result.hpp @@ -33,6 +33,16 @@ namespace detail { std::fprintf(stderr, "%s\n", unwrap_error().what()); } } + template< + typename U = T, + typename std::enable_if< + !std::is_same::type, Result>::value && + std::is_constructible::value && + !std::is_constructible::value, + int + >::type = 0 + > + Result(U&& u) : Result(value_type(std::forward(u))) {} Result(Result&& other) : active(other.active) { if(other.active == member::value) { new (&value_) value_type(std::move(other.value_));