mirror of
https://github.com/RGBCube/serenity
synced 2025-07-29 12:17:36 +00:00
AK: Provide a default set of Traits for const
types
This commit is contained in:
parent
a2f60911fe
commit
e9dda2a5f8
5 changed files with 22 additions and 29 deletions
10
AK/Endian.h
10
AK/Endian.h
|
@ -125,21 +125,11 @@ struct Traits<LittleEndian<T>> : public DefaultTraits<LittleEndian<T>> {
|
|||
static constexpr bool is_trivially_serializable() { return Traits<T>::is_trivially_serializable(); }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct Traits<LittleEndian<T> const> : public DefaultTraits<LittleEndian<T> const> {
|
||||
static constexpr bool is_trivially_serializable() { return Traits<T>::is_trivially_serializable(); }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct Traits<BigEndian<T>> : public DefaultTraits<BigEndian<T>> {
|
||||
static constexpr bool is_trivially_serializable() { return Traits<T>::is_trivially_serializable(); }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct Traits<BigEndian<T> const> : public DefaultTraits<BigEndian<T> const> {
|
||||
static constexpr bool is_trivially_serializable() { return Traits<T>::is_trivially_serializable(); }
|
||||
};
|
||||
|
||||
constexpr u16 bitswap(u16 v)
|
||||
{
|
||||
v = ((v >> 1) & 0x5555) | ((v & 0x5555) << 1); // even & odd bits
|
||||
|
|
|
@ -30,6 +30,11 @@ template<typename T>
|
|||
struct Traits : public DefaultTraits<T> {
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct Traits<T const> : public Traits<T> {
|
||||
using PeekType = typename Traits<T>::ConstPeekType;
|
||||
};
|
||||
|
||||
template<Integral T>
|
||||
struct Traits<T> : public DefaultTraits<T> {
|
||||
static constexpr bool is_trivial() { return true; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue