ReXGlue SDK
Loading...
Searching...
No Matches
types.h File Reference

Integer types, byte order wrappers and size literals. More...

#include <atomic>
#include <bit>
#include <compare>
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <string_view>
#include <type_traits>
#include <rex/assert.h>
#include <rex/platform.h>

Go to the source code of this file.

Classes

struct  rex::EndianValue< T, E >
struct  rex::IsBEType< T >
struct  rex::IsBEType< rex::BE< T > >

Namespaces

namespace  rex

Typedefs

using rex::u8 = uint8_t
using rex::u16 = uint16_t
using rex::u32 = uint32_t
using rex::u64 = uint64_t
using rex::i8 = int8_t
using rex::i16 = int16_t
using rex::i32 = int32_t
using rex::i64 = int64_t
using rex::f32 = float
using rex::f64 = double
template<typename T>
using rex::BE = EndianValue<T, std::endian::big>
template<typename T>
using rex::LE = EndianValue<T, std::endian::little>
using rex::GuestAddrT = u32
using rex::host_addr_t = uintptr_t
using rex::be_u8 = u8
using rex::be_u16 = BE<u16>
using rex::be_u32 = BE<u32>
using rex::be_u64 = BE<u64>
using rex::be_i8 = i8
using rex::be_i16 = BE<i16>
using rex::be_i32 = BE<i32>
using rex::be_i64 = BE<i64>
using rex::be_f32 = BE<f32>
using rex::be_f64 = BE<f64>
using u8 = rex::u8
using i8 = rex::i8
using u16 = rex::u16
using i16 = rex::i16
using u32 = rex::u32
using i32 = rex::i32
using u64 = rex::u64
using i64 = rex::i64
using f32 = rex::f32
using f64 = rex::f64
using be_u16 = rex::be_u16
using be_u32 = rex::be_u32
using be_u64 = rex::be_u64
using be_i16 = rex::be_i16
using be_i32 = rex::be_i32
using be_i64 = rex::be_i64
using be_f32 = rex::be_f32
using be_f64 = rex::be_f64

Functions

template<class T>
constexpr T rex::byte_swap (T value) noexcept
constexpr size_t rex::operator""_KiB (unsigned long long int x)
constexpr size_t rex::operator""_MiB (unsigned long long int x)
constexpr size_t rex::operator""_GiB (unsigned long long int x)
constexpr size_t rex::operator""_TiB (unsigned long long int x)
constexpr size_t rex::operator""_PiB (unsigned long long int x)

Variables

template<typename T>
constexpr bool rex::is_be_type_v = IsBEType<T>::value

Detailed Description

Integer types, byte order wrappers and size literals.

License
BSD 3-Clause License See LICENSE file in the project root for full license text.
Remarks
Derived from Xenia's xenia/base/literals.h (Ben Vanik, 2021).