diff --git a/src/safe_op.hpp b/src/safe_op.hpp index 8f00d83c7f..9ede2e70de 100644 --- a/src/safe_op.hpp +++ b/src/safe_op.hpp @@ -183,11 +183,13 @@ T add(T summand_1, T summand_2) { * when `num == std::numeric_limits::min()`. */ template -std::enable_if_t, T> abs(T num) noexcept { - if (num == std::numeric_limits::min()) { - return std::numeric_limits::max(); +T abs(T num) noexcept { + if constexpr (std::is_signed_v) { + if (num == std::numeric_limits::min()) + return std::numeric_limits::max(); + return num < 0 ? -num : num; } - return num < 0 ? -num : num; + return std::abs(num); } } // namespace Safe