Răsfoiți Sursa

common: common_funcs: Add R_UNLESS macro.

bunnei 5 ani în urmă
părinte
comite
92d5c63f01
1 a modificat fișierele cu 8 adăugiri și 0 ștergeri
  1. 8 0
      src/common/common_funcs.h

+ 8 - 0
src/common/common_funcs.h

@@ -93,6 +93,14 @@ __declspec(dllimport) void __stdcall DebugBreak(void);
         return static_cast<T>(key) == 0;                                                           \
     }
 
+/// Evaluates a boolean expression, and returns a result unless that expression is true.
+#define R_UNLESS(expr, res)                                                                        \
+    {                                                                                              \
+        if (!(expr)) {                                                                             \
+            return res;                                                                            \
+        }                                                                                          \
+    }
+
 namespace Common {
 
 [[nodiscard]] constexpr u32 MakeMagic(char a, char b, char c, char d) {