diff --git a/src/libs/3rdparty/tl_expected/include/tl/expected.hpp b/src/libs/3rdparty/tl_expected/include/tl/expected.hpp index afee404d43e..f7aa2deee1b 100644 --- a/src/libs/3rdparty/tl_expected/include/tl/expected.hpp +++ b/src/libs/3rdparty/tl_expected/include/tl/expected.hpp @@ -2039,6 +2039,19 @@ public: "T must be move-constructible and convertible to from U&&"); return bool(*this) ? std::move(**this) : static_cast(std::forward(v)); } + + template constexpr T error_or(U &&v) const & { + static_assert(std::is_copy_constructible::value && + std::is_convertible::value, + "E must be copy-constructible and convertible to from U&&"); + return !has_value() ? err().value() : static_cast(std::forward(v)); + } + template TL_EXPECTED_11_CONSTEXPR T error_or(U &&v) && { + static_assert(std::is_move_constructible::value && + std::is_convertible::value, + "E must be move-constructible and convertible to from U&&"); + return !has_value() ? std::move(err().value()) : static_cast(std::forward(v)); + } }; namespace detail {