From 4f1c72c174c247f2d3c26c227ddd62bf6c0bf76c Mon Sep 17 00:00:00 2001 From: Michel Hermier Date: Sat, 27 Mar 2021 22:12:07 +0100 Subject: [PATCH] AK: Add IsSigned conterpart to IsUnsigned. --- AK/StdLibExtras.h | 4 ++++ AK/Tests/TestTypeTraits.cpp | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/AK/StdLibExtras.h b/AK/StdLibExtras.h index d4f282cda4..c46ad6e86d 100644 --- a/AK/StdLibExtras.h +++ b/AK/StdLibExtras.h @@ -546,6 +546,9 @@ using Void = void; template constexpr auto DependentFalse = false; +template +using IsSigned = IsSame::Type>; + template using IsUnsigned = IsSame::Type>; @@ -623,6 +626,7 @@ using AK::IsFundamental; using AK::IsIntegral; using AK::IsNullPointer; using AK::IsSame; +using AK::IsSigned; using AK::IsUnion; using AK::IsUnsigned; using AK::IsVoid; diff --git a/AK/Tests/TestTypeTraits.cpp b/AK/Tests/TestTypeTraits.cpp index 2e1dbde4c5..1b13d71903 100644 --- a/AK/Tests/TestTypeTraits.cpp +++ b/AK/Tests/TestTypeTraits.cpp @@ -85,6 +85,14 @@ TEST_CASE(FundamentalTypeClassification) EXPECT_TRAIT_FALSE(IsFundamental, Empty, int*, int&); + EXPECT_TRAIT_FALSE(IsSigned, unsigned); + EXPECT_TRAIT_FALSE(IsSigned, unsigned short); + EXPECT_TRAIT_FALSE(IsSigned, unsigned char); + EXPECT_TRAIT_FALSE(IsSigned, unsigned long); + EXPECT_TRAIT_TRUE(IsSigned, int); + EXPECT_TRAIT_TRUE(IsSigned, short); + EXPECT_TRAIT_TRUE(IsSigned, long); + EXPECT_TRAIT_TRUE(IsUnsigned, unsigned); EXPECT_TRAIT_TRUE(IsUnsigned, unsigned short); EXPECT_TRAIT_TRUE(IsUnsigned, unsigned char);