AK: Add a Decay helper for Concepts

This commit is contained in:
Hendiadyoin1 2021-11-07 14:34:55 +01:00 committed by Ali Mohammad Pur
parent b7d19476f2
commit dfe2cf3a40

View file

@ -557,6 +557,22 @@ inline constexpr bool IsSpecializationOf = false;
template<template<typename...> typename U, typename... Us>
inline constexpr bool IsSpecializationOf<U<Us...>, U> = true;
template<typename T>
struct __decay {
typedef Detail::RemoveCVReference<T> type;
};
template<typename T>
struct __decay<T[]> {
typedef T* type;
};
template<typename T, decltype(sizeof(T)) N>
struct __decay<T[N]> {
typedef T* type;
};
// FIXME: Function decay
template<typename T>
using Decay = typename __decay<T>::type;
}
using AK::Detail::AddConst;
using AK::Detail::AddLvalueReference;