From c6a137dbac4782ddcf1d1eeb07a6496907673d0b Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Mon, 9 Aug 2021 02:52:35 +0430 Subject: [PATCH] AK: Add a IsSpecializationOf type trait --- AK/StdLibExtraDetails.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/AK/StdLibExtraDetails.h b/AK/StdLibExtraDetails.h index 748e353dc5..f1f499e5fd 100644 --- a/AK/StdLibExtraDetails.h +++ b/AK/StdLibExtraDetails.h @@ -532,6 +532,13 @@ inline constexpr bool IsMoveAssignable = IsAssignable, Add template inline constexpr bool IsTriviallyMoveAssignable = IsTriviallyAssignable, AddRvalueReference>; + +template typename U> +inline constexpr bool IsSpecializationOf = false; + +template typename U, typename... Us> +inline constexpr bool IsSpecializationOf, U> = true; + } using AK::Detail::AddConst; using AK::Detail::AddLvalueReference; @@ -570,6 +577,7 @@ using AK::Detail::IsPointer; using AK::Detail::IsRvalueReference; using AK::Detail::IsSame; using AK::Detail::IsSigned; +using AK::Detail::IsSpecializationOf; using AK::Detail::IsTrivial; using AK::Detail::IsTriviallyAssignable; using AK::Detail::IsTriviallyConstructible;