template >> constexpr T abs(T n) { if constexpr (std::is_signed_v) { return n >= 0 ? n : -n; } return n; }