From 3d8854a9f9f9d32d3e8d7c3fd23fb58b43ad3557 Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Sun, 3 Aug 2025 13:43:51 +0200 Subject: [PATCH] enhance: Add TRY_ASSIGN macro --- src/ccache/util/expected.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ccache/util/expected.hpp b/src/ccache/util/expected.hpp index e8a55372..9f79ff95 100644 --- a/src/ccache/util/expected.hpp +++ b/src/ccache/util/expected.hpp @@ -58,6 +58,13 @@ void throw_on_error(const T& value, std::string_view prefix); } \ } while (false) +#define TRY_ASSIGN(var_, expression_) \ + auto result_##__LINE__##_ = (expression_); \ + if (!result_##__LINE__##_) { \ + return tl::unexpected(std::move(result_##__LINE__##_.error())); \ + } \ + var_ = std::move(*result_##__LINE__##_) + // --- Inline implementations --- template -- 2.47.2