From 115c44630d2d6e9b5862fcadd4cdd1261684c0b6 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 19 Apr 2023 00:11:15 +0300 Subject: [PATCH] BAN: TRY and MUST macros use rvalue references --- BAN/include/BAN/Errors.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BAN/include/BAN/Errors.h b/BAN/include/BAN/Errors.h index 52ec5f27a..23755b642 100644 --- a/BAN/include/BAN/Errors.h +++ b/BAN/include/BAN/Errors.h @@ -9,12 +9,12 @@ #if defined(__is_kernel) #include #include - #define MUST(expr) ({ auto e = expr; if (e.is_error()) Kernel::panic("{}", e.error()); e.release_value(); }) + #define MUST(expr) ({ auto&& e = expr; if (e.is_error()) Kernel::panic("{}", e.error()); e.release_value(); }) #else - #define MUST(expr) ({ auto e = expr; assert(!e.is_error()); e.release_value(); }) + #define MUST(expr) ({ auto&& e = expr; assert(!e.is_error()); e.release_value(); }) #endif -#define TRY(expr) ({ auto e = expr; if (e.is_error()) return e.release_error(); e.release_value(); }) +#define TRY(expr) ({ auto&& e = expr; if (e.is_error()) return e.release_error(); e.release_value(); }) namespace BAN {