AK: Remove IsSigned and IsUnsigned specializations for UFixedBigInt

I don't think it makes sense to have these specializations for
non-primitive types.
Additionally, they will conflict with the new definitions of these
templates in the next commit.

The only place where these specializations were required was in
`UFixedBigInt::operator%=`. But we can easily switch to using
`UFixedInt` like we already do for `operator/=` and `operator%` itself.
This commit is contained in:
Sönke Holz
2026-02-06 22:00:35 +01:00
committed by Tim Schumacher
parent e6f97c316d
commit 64a0b22d30

View File

@@ -439,7 +439,7 @@ public:
constexpr auto& operator/=(T const& other) { return *this = *this / other; }
constexpr auto& operator/=(IntegerWrapper const& other) { return *this = *this / other; }
template<Unsigned U>
template<UFixedInt U>
constexpr auto& operator%=(U const& other) { return *this = *this % other; }
constexpr auto& operator%=(IntegerWrapper const& other) { return *this = *this % other; }
@@ -501,11 +501,6 @@ int operator<=>(IntegerWrapper const& a, NotBuiltInUFixedInt auto const& b) { re
using Detail::UFixedBigInt;
template<size_t bit_size>
constexpr inline bool IsUnsigned<UFixedBigInt<bit_size>> = true;
template<size_t bit_size>
constexpr inline bool IsSigned<UFixedBigInt<bit_size>> = false;
template<size_t bit_size>
struct NumericLimits<UFixedBigInt<bit_size>> {
using T = UFixedBigInt<bit_size>;