AsmGrader 0.0.0
Loading...
Searching...
No Matches
asmgrader::detail Namespace Reference

Namespaces

namespace  cctype
 

Classes

struct  AggregateFormatter
 
struct  CompatibleFunctionArgsImpl
 
struct  CompatibleFunctionArgsImpl< Ret(FuncArgs...), Args... >
 
struct  DebugTimeHelper
 
struct  EnumFormatter
 
struct  FormatterImpl
 
struct  maybe_static_to_impl
 
struct  maybe_static_to_impl< Container >
 
struct  MemoryIOCompat
 
struct  MemoryIOCompatImpl
 
struct  MemoryIOCompatImpl< std::string, U * >
 
struct  MemoryIOCompatImpl< std::string_view, U * >
 
struct  MemoryIOCompatImpl< std::uintptr_t, U * >
 
struct  partial_bytearray_spec
 
struct  RegisterBaseImpl
 CRTP (or is it CRTTP in this case?) is used to pass an arch alternative. See gh#21 for details. More...
 
struct  RegisterBaseImpl< Derived, BaseType, Arch >
 
struct  UnwrapInnerOr
 
struct  UnwrapInnerOr< T >
 

Concepts

concept  IsUnwrappable
 
concept  CharLike
 

Typedefs

template<typename T >
using UnwrapInnerT = std::remove_reference_t<decltype(std::declval<T>().value())>
 Obtain the inner type of a T satisfying IsUnwrappable (e.g., std::optional or asmgrader::Expected)
 
template<typename T >
using UnwrapInnerOrT = UnwrapInnerOr<T>::type
 
using sized_uint_map = mp::mp_list<u8, u16, u32, u64>
 
using sized_int_map = mp::mp_list<i8, i16, i32, i64>
 
template<int I>
using sized_int_impl = mp::mp_at<sized_int_map, mp::mp_int<I>>
 
template<int I>
using sized_uint_impl = mp::mp_at<sized_uint_map, mp::mp_int<I>>
 

Functions

template<EndiannessKind To, ranges::range Range>
constexpr void maybe_reverse_endianness (Range &range)
 
constexpr bool in_range (auto &&val, auto &&low, auto &&high)
 inclusive
 
template<typename Type >
consteval decltype(auto) resolve_overload (auto &&overloaded)
 
template<typename Ret , typename Func , typename T , typename... Ts>
constexpr Ret tuple_find_first_impl (Func &&pred, const T &val, const Ts &... rest)
 
template<typename T >
NativeByteVector reinterpret_raw (const T &data)
 
template<typename T >
const T * reinterpret_raw (const std::vector< std::byte > &data)
 
template<typename T >
NativeByteVector reinterpret_raw_each (const T &range)
 

Typedef Documentation

◆ sized_int_impl

template<int I>
using asmgrader::detail::sized_int_impl = mp::mp_at<sized_int_map, mp::mp_int<I>>

◆ sized_int_map

using asmgrader::detail::sized_int_map = mp::mp_list<i8, i16, i32, i64>

◆ sized_uint_impl

template<int I>
using asmgrader::detail::sized_uint_impl = mp::mp_at<sized_uint_map, mp::mp_int<I>>

◆ sized_uint_map

using asmgrader::detail::sized_uint_map = mp::mp_list<u8, u16, u32, u64>

◆ UnwrapInnerOrT

template<typename T >
using asmgrader::detail::UnwrapInnerOrT = UnwrapInnerOr<T>::type

◆ UnwrapInnerT

template<typename T >
using asmgrader::detail::UnwrapInnerT = std::remove_reference_t<decltype(std::declval<T>().value())>

Obtain the inner type of a T satisfying IsUnwrappable (e.g., std::optional or asmgrader::Expected)

Function Documentation

◆ in_range()

bool asmgrader::detail::in_range ( auto && val,
auto && low,
auto && high )
constexpr

inclusive

◆ maybe_reverse_endianness()

template<EndiannessKind To, ranges::range Range>
void asmgrader::detail::maybe_reverse_endianness ( Range & range)
constexpr

◆ reinterpret_raw() [1/2]

template<typename T >
const T * asmgrader::detail::reinterpret_raw ( const std::vector< std::byte > & data)

◆ reinterpret_raw() [2/2]

template<typename T >
NativeByteVector asmgrader::detail::reinterpret_raw ( const T & data)

◆ reinterpret_raw_each()

template<typename T >
NativeByteVector asmgrader::detail::reinterpret_raw_each ( const T & range)

◆ resolve_overload()

template<typename Type >
decltype(auto) asmgrader::detail::resolve_overload ( auto && overloaded)
consteval

◆ tuple_find_first_impl()

template<typename Ret , typename Func , typename T , typename... Ts>
Ret asmgrader::detail::tuple_find_first_impl ( Func && pred,
const T & val,
const Ts &... rest )
constexpr