mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 10:57:34 +00:00
AK: Add a Decay helper for Concepts
This commit is contained in:
parent
b7d19476f2
commit
dfe2cf3a40
1 changed files with 16 additions and 0 deletions
|
@ -557,6 +557,22 @@ inline constexpr bool IsSpecializationOf = false;
|
||||||
template<template<typename...> typename U, typename... Us>
|
template<template<typename...> typename U, typename... Us>
|
||||||
inline constexpr bool IsSpecializationOf<U<Us...>, U> = true;
|
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::AddConst;
|
||||||
using AK::Detail::AddLvalueReference;
|
using AK::Detail::AddLvalueReference;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue