diff --git a/AK/JsonValue.h b/AK/JsonValue.h index ae05aceba8..b8e7419fe9 100644 --- a/AK/JsonValue.h +++ b/AK/JsonValue.h @@ -104,11 +104,17 @@ public: Optional get_addr() const { -#ifdef __LP64__ - return get_u64(); -#else - return get_u32(); -#endif + // Note: This makes the lambda dependent on the template parameter, which is necessary + // for the `if constexpr` to not evaluate both branches. + auto fn = [&]() -> Optional { + if constexpr (IsSame) { + return get_u64(); + } else { + return get_u32(); + } + }; + + return fn.operator()(); } Optional get_bool() const