mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 20:33:10 +00:00
AK: Add a IsSpecializationOf<T, Template> type trait
This commit is contained in:
parent
dcf795085b
commit
c6a137dbac
|
@ -532,6 +532,13 @@ inline constexpr bool IsMoveAssignable = IsAssignable<AddLvalueReference<T>, Add
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline constexpr bool IsTriviallyMoveAssignable = IsTriviallyAssignable<AddLvalueReference<T>, AddRvalueReference<T>>;
|
inline constexpr bool IsTriviallyMoveAssignable = IsTriviallyAssignable<AddLvalueReference<T>, AddRvalueReference<T>>;
|
||||||
|
|
||||||
|
template<typename T, template<typename...> typename U>
|
||||||
|
inline constexpr bool IsSpecializationOf = false;
|
||||||
|
|
||||||
|
template<template<typename...> typename U, typename... Us>
|
||||||
|
inline constexpr bool IsSpecializationOf<U<Us...>, U> = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
using AK::Detail::AddConst;
|
using AK::Detail::AddConst;
|
||||||
using AK::Detail::AddLvalueReference;
|
using AK::Detail::AddLvalueReference;
|
||||||
|
@ -570,6 +577,7 @@ using AK::Detail::IsPointer;
|
||||||
using AK::Detail::IsRvalueReference;
|
using AK::Detail::IsRvalueReference;
|
||||||
using AK::Detail::IsSame;
|
using AK::Detail::IsSame;
|
||||||
using AK::Detail::IsSigned;
|
using AK::Detail::IsSigned;
|
||||||
|
using AK::Detail::IsSpecializationOf;
|
||||||
using AK::Detail::IsTrivial;
|
using AK::Detail::IsTrivial;
|
||||||
using AK::Detail::IsTriviallyAssignable;
|
using AK::Detail::IsTriviallyAssignable;
|
||||||
using AK::Detail::IsTriviallyConstructible;
|
using AK::Detail::IsTriviallyConstructible;
|
||||||
|
|
Loading…
Reference in a new issue