Classes | Namespaces | Typedefs | Functions | Variables
endian.hh File Reference
#include "inline.hh"
#include "narrow.hh"
#include <array>
#include <bit>
#include <cassert>
#include <concepts>
#include <cstdint>
#include <cstring>
Include dependency graph for endian.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  Endian::Ident
struct  Endian::ByteSwap
class  Endian::EndianT< T, Op >
struct  Endian::ConvBig< true >
struct  Endian::ConvBig< false >
struct  Endian::ConvLittle< true >
struct  Endian::ConvLittle< false >
class  Endian::UA_B16
class  Endian::UA_L16
class  Endian::UA_L24
class  Endian::UA_B32
class  Endian::UA_L32
struct  Endian::Little< uint8_t >
struct  Endian::Little< uint16_t >
struct  Endian::Little< uint32_t >
struct  Endian::Big< uint8_t >
struct  Endian::Big< uint16_t >
struct  Endian::Big< uint32_t >


namespace  Endian


using Endian::B16 = EndianT< uint16_t, ConvBig< BIG > >
using Endian::L16 = EndianT< uint16_t, ConvLittle< BIG > >
using Endian::B32 = EndianT< uint32_t, ConvBig< BIG > >
using Endian::L32 = EndianT< uint32_t, ConvLittle< BIG > >
using Endian::B64 = EndianT< uint64_t, ConvBig< BIG > >
using Endian::L64 = EndianT< uint64_t, ConvLittle< BIG > >


void Endian::writeB16 (void *p, uint16_t x)
void Endian::writeL16 (void *p, uint16_t x)
void Endian::writeB32 (void *p, uint32_t x)
void Endian::writeL32 (void *p, uint32_t x)
uint16_t Endian::readB16 (const void *p)
uint16_t Endian::readL16 (const void *p)
uint32_t Endian::readB32 (const void *p)
uint32_t Endian::readL32 (const void *p)
ALWAYS_INLINE void Endian::write_UA_B16 (void *p, uint16_t x)
ALWAYS_INLINE void Endian::write_UA_L16 (void *p, uint16_t x)
ALWAYS_INLINE void Endian::write_UA_L24 (void *p, uint32_t x)
ALWAYS_INLINE void Endian::write_UA_B32 (void *p, uint32_t x)
ALWAYS_INLINE void Endian::write_UA_L32 (void *p, uint32_t x)
ALWAYS_INLINE void Endian::write_UA_B64 (void *p, uint64_t x)
ALWAYS_INLINE void Endian::write_UA_L64 (void *p, uint64_t x)
ALWAYS_INLINE uint16_t Endian::read_UA_B16 (const void *p)
ALWAYS_INLINE uint16_t Endian::read_UA_L16 (const void *p)
ALWAYS_INLINE uint32_t Endian::read_UA_L24 (const void *p)
ALWAYS_INLINE uint32_t Endian::read_UA_B32 (const void *p)
ALWAYS_INLINE uint32_t Endian::read_UA_L32 (const void *p)
ALWAYS_INLINE uint64_t Endian::read_UA_B64 (const void *p)
ALWAYS_INLINE uint64_t Endian::read_UA_L64 (const void *p)


constexpr bool Endian::BIG = std::endian::native == std::endian::big
constexpr bool Endian::LITTLE = std::endian::native == std::endian::little