diff --git a/AK/Checked.h b/AK/Checked.h index 06fd95980f..2ff5c6afa9 100644 --- a/AK/Checked.h +++ b/AK/Checked.h @@ -338,6 +338,22 @@ public: #endif } + template + static constexpr T saturating_add(U a, V b) + { + Checked checked { a }; + checked.saturating_add(b); + return checked.value(); + } + + template + static constexpr T saturating_sub(U a, V b) + { + Checked checked { a }; + checked.saturating_sub(b); + return checked.value(); + } + template [[nodiscard]] static constexpr bool multiplication_would_overflow(U u, V v) {